2009-06-22 120 views
1

我可以很容易地遍歷當前窗口,而我在使用content.document的擴展中的pageLoad函數內,但是當我嘗試在另一個函數中使用setInterval調用時訪問它時,我可以不能訪問content.document。firefox擴展,jQuery和訪問文檔

我試過content.document,document.defaultView,window.content.document和基本上每一個我能想到的明智的組合。

請大家幫忙。謝謝。

回答

1

我這通過獲取文檔對象了,像這樣的活動的工作:

e.target.defaultView.document 

的事件對象是在任何事件偵聽器功能可用 - 例如用於你可以通過做這樣的事情被捕獲文件加載事件:

var appcontent = window.document.getElementById('appcontent'); 
    appcontent.addEventListener('DOMContentLoaded', onPageLoad, false); 

在這個例子中,該功能的onPageLoad獲取可用於提取文檔事件的說法。

爲了能夠訪問其他地方的文檔對象,請設置一個指向該文檔對象的全局變量。如果使用jQuery,則將其作爲可選的第二個參數傳遞給$函數(即jQuery工作的上下文)。

+0

你是偶然的greasemonkey的作者嗎?我只是在閱讀該插件的代碼,而這正是它的作用。 – unixman83 2011-09-11 22:16:59

0

我不知道爲什麼這不會工作(我不得不看更多的代碼)。但是,另一種方法是使用gBrowser.selectedBrowser.contentDocument