2009-12-15 31 views
3

我有一個lightwiehgt插件Firefox需要注入一個腳本到HTML中。 的代碼看起來是這樣的:從overlay.js獲取HEAD元素firefox插件

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]返回「不確定」,並檢查document.getElementsByTagName("head").length爲0

它目前執行的瀏覽器document.onLoad事件,但我也試圖調用它從window.setTimeout,以確保它不是加載同步問題,但同樣的情況發生。

任何人的想法? 謝謝!

+0

可能這是一個greasemonkey userscript?在這種情況下,出於安全考慮,您可能需要訪問'unsafeWindow.document'。 – 2009-12-15 10:58:33

+0

沒有。不是油門鑰匙腳本... – nivhab 2009-12-15 11:13:12

回答

2

我今天剛剛有類似的問題,並設法找到解決方案。您的帖子是從1個月前,所以不知道你是否已經解決了你的問題。下面的鏈接可以回答你的問題:https://developer.mozilla.org/en/Working_with_windows_in_chrome_code

+0

是的,OP需要先獲取內容窗口。 – Nickolay 2010-01-17 15:41:22

+0

鏈接已死「服務不可用,服務暫時不可用,請稍後再試。」你能否包括這個問題的答案? – 2011-11-14 12:40:30

0

如果您使用的是frameiframe對象,你不應該引用document直接,但這樣做:

var doc = frame.contentWindow.document; 

後,你可以得到頭。我正在使用jQuery向它添加一些資源:

$(doc).find('head').append(
       '<link type="text/css" rel="stylesheet" href="MyStylesheet.css" />'); 

希望它有幫助。