我有一个 firefox 的 lightwiehgt 插件,它需要将脚本注入(inject) HTML。 代码如下所示:
var head = document.getElementsByTagName("head")[0];
var newscrpt;
newscrpt = document.createElement('script');
newscrpt.type = "text/javascript" ;
newscrpt.src = "http://blabla.com/...";
newscrpt = head.appendChild(newscrpt);
问题是 document.getElementsByTagName("head")[0]
返回 'undefined',检查 document.getElementsByTagName("head").length
是0.
它目前在浏览器 document.onLoad 事件上执行,但我也尝试从 window.setTimeout
调用它以确保它不是加载同步的问题,但同样的事情发生了。
有人有什么想法吗? 谢谢!
最佳答案
如果您使用的是 frame
或 iframe
对象,则不应直接引用 document
,而应执行以下操作:
var doc = frame.contentWindow.document;
之后你就可以拿到头了。我正在使用 jQuery 向其添加一些资源:
$(doc).find('head').append(
'<link type="text/css" rel="stylesheet" href="MyStylesheet.css" />');
希望对您有所帮助。
关于javascript - 从 overlay.js firefox 插件获取 HEAD 元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1906641/