检索包含iframe的文档中的所有头元素

时间:2010-04-21 19:12:53

标签: javascript

我正在尝试将style元素添加到文档中的所有head元素,包括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);

但这似乎不起作用! 我在这里做错了什么......?

2 个答案:

答案 0 :(得分:1)

如果您getElementsbyTagName('iframe')然后获取子元素会怎样?

请注意,您可能会遇到针对iframe的安全限制,以防止跨站点脚本。

答案 1 :(得分:0)

这对我有用。感谢-_-

的所有帮助
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);
}