我有一个iframe,里面的背景颜色应该变成黑色,身体颜色变成白色。并且所有从外部样式表加载的由deafult染成黑色的元素也需要变为白色。 我做的第一件事是改变正文的背景颜色和颜色:
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);
}
}
注意:外部加载样式表。 我无法手动更改外部样式表,我想在运行时执行此操作。对上述代码有更好的解决方案或修改吗?