【问题标题】:Cloning a css style from a style sheet using jquery/greasemonkey使用 jquery/greasemonkey 从样式表克隆 css 样式
【发布时间】:2009-11-19 07:15:36
【问题描述】:

我正在使用 jquery 编写一个 Greasemonkey 脚本,我想从多个页面添加信息,但是我要加载的对象是一个带有 Id 的 div,有什么方法可以检索样式信息,以便我可以将其应用于添加的部分吗?

【问题讨论】:

    标签: jquery css greasemonkey


    【解决方案1】:

    看看getComputedStyle()

    这是未经测试的,但代码应该是这样的:

    var someOtherElement = document.getElementById('blah');
    var style = window.getComputedStyle(document.getElementById('myId'), '');
    for (var i in style) {
        if (style.hasOwnProperty(i)) {
            someOtherElement.style[i] = style[i];
        }
    }
    

    这只会在 Firefox 上起作用(好吧,this 可能根本不起作用,但它的基本思想只会在 Firefox 上起作用),但既然你说你使用的是油脂猴,我假设这不是你关心的问题。


    我认为今天早上我的大脑工作不正常 - 但无论如何,这里有一些工作,但以一种狡猾的方式。循环遍历要复制它们的元素的样式

    var s = window.getComputedStyle(document.getElementById('myElement'), null);
    var someOtherElement = document.getElementById('someOther');
    
    for (var i in someOtherElement.style) {
        try {
            someOtherElement.style[i] = s[i];
        } catch (e) { }
    }
    

    就像我说的,我的大脑不工作,上面的内容很狡猾。 style 对象具有属性 lengthparentRule,它们是只读的,这使它死亡,因此是 try/catch。

    【讨论】:

    • “window.getComputedStyle(document.getElementById('myId'), '');”工作得很好,但我不认为它是一个数组。如果我调用类似“alert(style.backgroundColor);”的东西它显示样式,但如果我尝试“for (var i in style){”并尝试在 for 循环中执行任何操作,它什么也不做。
    猜你喜欢
    • 2012-02-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-16
    • 1970-01-01
    • 1970-01-01
    • 2013-07-23
    • 2013-07-20
    相关资源
    最近更新 更多