我正在尝试将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);
但这似乎不起作用! 我在这里做错了什么......?
答案 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);
}