【发布时间】:2009-11-19 07:15:36
【问题描述】:
我正在使用 jquery 编写一个 Greasemonkey 脚本,我想从多个页面添加信息,但是我要加载的对象是一个带有 Id 的 div,有什么方法可以检索样式信息,以便我可以将其应用于添加的部分吗?
【问题讨论】:
标签: jquery css greasemonkey
我正在使用 jquery 编写一个 Greasemonkey 脚本,我想从多个页面添加信息,但是我要加载的对象是一个带有 Id 的 div,有什么方法可以检索样式信息,以便我可以将其应用于添加的部分吗?
【问题讨论】:
标签: jquery css greasemonkey
这是未经测试的,但代码应该是这样的:
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 对象具有属性 length 和 parentRule,它们是只读的,这使它死亡,因此是 try/catch。
【讨论】: