2011-10-23 62 views
0

我想寫一個Chrome擴展,它將添加事件處理程序到頁面。問題是事件不是標準的,並且由頁面上運行的外部javascript(jquery)觸發。用content-scripts解決這個問題似乎是不可能的,因爲它們在單獨的環境中執行,只能訪問頁面的DOM,而不能訪問JS。我還有什麼其他選擇?訪問Chrome擴展內的自定義頁面回調

更新:

這裏的問題是,頁面是不知道的內容腳本或整個延伸。示例:頁面中的JS觸發事件,在文檔中說'someCustomEvent'併爲該事件定義處理程序。所以當頁面加載時,JS控制檯內部我可以這樣做:

$(document).data('events'); 

並且會列出所有這些自定義定義的事件。在content-script中執行相同的操作只會導致content-script定義的那些事件。

我正在尋找一種方法來捕獲內容腳本中的所有這些自定義事件,或者如何在與頁面js相同的環境中執行擴展的js。

回答

1

捕捉自定義事件對內容腳本不是問題(如果它是實際事件,而不是模擬)。實際上,自定義事件是內容腳本和頁面之間進行通信的推薦方式。你可以查看一些例子。