2010-04-21 52 views
0

我試圖將style元素添加到文檔中的所有所有head元素,包括iframe中的元素。檢索包含iframe的文檔中的所有頭元素

如果我使用

var heads = document.getElementsByTagName('head'); 

它只是返回第一個head元素,而不是在iframe的人。 這是完整的代碼:

var heads = document.getElementsByTagName("head"); 
var style = document.createElement("style"); 
style.type = "text/css"; 
style.appendChild(document.createTextNode(css)); 
for(var i=0;i<heads.length;i++) heads[i].appendChild(style); 

但這似乎並不奏效! 我在這裏做錯了什麼...?

回答

0

這是爲我工作。感謝名單的所有幫助BTW -_-

try { if(top.location.href != window.location.href) { return; } } 
catch(e) { return; } 

window.setTimeout(getAllHeads, 1000); 

function getAllHeads() { 
    var heads = new Array(); 
    var head = document.getElementsByTagName("head")[0]; 
    if(head) addHead(head); 
    var frames = document.getElementsByTagName("iframe"); 
    for(var i = 0, len = frames.length; i < len; i++) { 
     var frame = frames[i]; 
     head = (frame.contentDocument).getElementsByTagName("head")[0]; 
     if(head) addHead(head); 
    } 

    function addHead(h) { heads.push(h); } 

    alert(heads.length); 
} 
1

如果你getElementsbyTagName('iframe')然後得到子元素?

請注意,您可能會對安裝在其中的iframe進行安全限制,以防止跨站點腳本。

+0

但是這將只是給我的iframe元素頭,在那裏,因爲我想獲得所有的頭元素,不只是在I幀的人。 – 1nfected 2010-04-21 19:25:35

+0

顛簸,請任何人...? – 1nfected 2010-04-22 03:59:45

相關問題