我正在構建一個Chrome擴展,並試圖從Twitter獲取數據,然後將其傳遞給我的內容。我遇到了很多問題。我能夠從遠程站點獲取數據,但似乎無法將其傳遞給我的內容腳本。我有一個聽衆,當我點擊圖標使用chrome.extension.onclick.addlistener(functionname);
。這獲取數據。問題是一旦我得到的數據,我需要發送一個響應來自我的內容腳本的請求。所以我也打電話給chrome.extension.Onrequest.addlistener(functioname);
。在我繼續嘗試弄清楚代碼有什麼問題之前,是否允許在同一頁面中爲2個獨立事件分配2個監聽器,或者您只能有一個監聽器?鉻擴展後臺頁面可以有多個監聽器嗎?
回答
如果你#2一個快速搜索,你會看到如何從背景頁將消息發送到內容腳本代碼的例子很多: https://stackoverflow.com/search?tab=relevance&q=content%20script%20background%20page
欲瞭解更多信息,如何做到這一點,你可以按照文檔本身,他們有很好的例子: http://code.google.com/chrome/extensions/messaging.html
從文件(複製粘貼):
content_script.cs
chrome.extension.onRequest.addListener(function(request, sender, sendResponse) {
if (request.greeting == "hello")
sendResponse({farewell: "goodbye"});
else
sendResponse({}); // snub them.
});
background.html
chrome.tabs.getSelected(null, function(tab) {
chrome.tabs.sendRequest(tab.id, {greeting: "hello"}, function(response) {
console.log(response.farewell);
});
});
您已經創建了一個監聽onClick事件和偵聽器onRequest事件的事實是沒有問題的。您可以通過在控制檯輸入chrome.onClick和chrome.OnRequest來查看背景頁面;你會看到它們都是'chrome.Event'類型的實例。
如果您考慮一下,如果您只能創建一個偵聽器,那麼它將大大降低您編寫有用的功能的能力,因爲您只能響應{onrequest,onclick,ontabchange,onconnect,ondisconnect等之一。 }
我知道這是一個瘋狂的老問題,但我碰到這個傳來時遇到了相關的問題,並希望在情況下,它是對別人有用的分享。
確保你只調用sendResponse
方法最多一次,如果你有多個聽衆。從文檔:
sendResponse:函數來調用(至多一次),當你有一個響應。 參數應該是任何JSON對象。如果你有一個以上 一個在同一文件中的onMessage監聽器,那麼只有一個可以發送 響應。當事件監聽器 的回報,除非你從事件監聽器返回true指示 要異步發送一個響應此功能失效(這將讓消息 通道開放的另一端,直到sendResponse被調用)。
- 1. 在Chrome擴展可以後臺頁面跟一個page_action彈出
- 2. 可以SimpleXMLRPCServer監聽多個地址嗎?
- 3. 事件監聽器可以監聽兩個元素嗎?你可以給處理程序更多的參數嗎?
- 4. 我可以將Mootools框架包含到Chrome擴展的後臺頁面嗎?
- 5. Chrome擴展問題與後臺頁面
- 6. Chrome擴展後臺頁面狀態
- 7. Scala類可以擴展多個類嗎?
- 8. CKAN擴展可以有控制器嗎?
- 9. 如何設計一個可擴展的rpc呼叫監聽器?
- 10. Firefox擴展端口監聽器
- 11. 括號擴展保存監聽器
- 12. 文件下載監聽器 - Chrome擴展?
- 13. 鉻devtools擴展控制檯
- 14. Laravel監聽器監聽多個事件
- 15. 鉻擴展頁面修改onload
- 16. 多個頁面上的jqm側面板的事件監聽器
- 17. 狀態轉換後可以註冊點擊監聽器嗎?
- 18. 在後臺運行HTML頁面以獲得Chrome擴展
- 19. 彈出式擴展中的背景頁面 - 鉻擴展
- 20. Firefox擴展:甚至監聽器在面板內部的變化
- 21. 擴展是否可以知道另一個擴展註冊了哪些事件監聽器?
- 22. 我可以切換擴展器的可擴展性嗎?
- 23. 鉻擴展後臺頁面應該如何與多個內容腳本進行通信?
- 24. 如何知道頁面上有多少事件監聽器
- 25. WPF擴展器 - 只有一個擴展器隨時可以擴展
- 26. Gridview可以同時擁有onclick和onitemclick監聽器嗎?
- 27. 舞臺上有多少個事件監聽器?
- 28. 谷歌瀏覽器擴展程序:後臺頁面或活動頁面?
- 29. 檢測Chrome擴展後臺頁面控制檯打開
- 30. 我可以擴展\ include靜態html頁面嗎?
我想你可以在測試這一點自己差不多的時間花了你問你的問題。 – 2011-02-07 17:10:22