iframe이 있고 그 배경색이 검정색으로, 몸체가 흰색으로 바뀌어야합니다. 그리고 외부 스타일 시트에서로드 된 디아 프트 (deafult)로 색상이 검정 인 모든 요소는 흰색으로 변경해야합니다. 나는 배경 색상 및 본문 텍스트의 색상을 변경 한 첫 번째 일은이다 :iframe 내부에서 요소 스타일을 동적으로 변경합니다.
frame = document.getElementsByTagName(“iframe”);
var D = frame.contentDocument;
var cwin = frame.contentWindow;
D.body.style.backgroundColor ='black';
D.body.style.color = 'white';
그러나 색 검은 색을 가지고있는 요소 인해 스타일에 보이지 않는 될 것입니다. 그래서 나는 돔을 가로 지르며 색이 검은 색 요소를 가져 와서 흰색으로 바꾼다. 하지만 아래 코드는 제대로 작동하지 않습니다.
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 '에 실제로 포함 된 내용을 확인 했습니까? – CBroe
yac은 값이 입니다. "rgb (0, 0, 0)"' – user2635299
setProeprty 대신'.style.color = "white"' – CBroe