【发布时间】:2013-11-01 06:03:29
【问题描述】:
我有一个 iframe,里面的背景颜色应该变为黑色,主体颜色变为白色。并且从外部样式表加载的默认为黑色的所有元素也需要更改为白色。 我更改正文的背景颜色和颜色的第一件事是:
frame = document.getElementsByTagName(“iframe”);
var D = frame.contentDocument;
var cwin = frame.contentWindow;
D.body.style.backgroundColor ='black';
D.body.style.color = 'white';
但是具有黑色的元素会因其样式而变得不可见。所以我遍历 dom 以获取黑色的元素并将其更改为白色。但是下面的代码似乎不起作用。
var all = D.getElementsByTagName("*");
for (var i=0, max=all.length; i < max; i++) {
computedStyle = cwin.getComputedStyle(all[i]);
var c = computedStyle.getPropertyValue("color");
if(c =='rgb(0,0,0)'){
all[i].style.setProperty("color", "white", null);
}
}
注意:样式表是从外部加载的。 我无法手动更改外部样式表,我想在运行时进行。以上代码有更好的解决方案或修改吗?
【问题讨论】:
-
您检查过
c实际包含的内容吗? -
ya c 的值为
"rgb(0, 0, 0)" -
代替 setProeprty,试试
.style.color="white" -
它不在
if条件内。顺便说一句,我认为我在上述代码中的方法不正确,它获得了 iframe 窗口的颜色而不是特定的元素颜色。
标签: javascript html css dom iframe