2013-06-26 191 views
0

我已經通過了Message Passing Documentation閱讀並試圖如下利用它在我的代碼:消息Chrome擴展程序和內容之間傳遞腳本

contentscript.js:

var buttonEl = document.getElementById("activateBtn"); 

if (buttonEl) { 
    buttonEl.addEventListener("click", function() { 
     alert("activateBtn clicked! " + chrome.runtime.sendMessage); 

     chrome.runtime.sendMessage({button: buttonEl}); 
    }); 
} 

backgroundscript。 js:

chrome.runtime.onMessage.addListener(function (request, sender, sendResponse) { 
    console.log("onMessage:", request); 
}); 

目標是讓內容腳本被注入頁面(在manifest.json中指定),然後運行。 腳本運行良好 - 顯示警報消息,但不發送消息。或沒有收到。無論哪種方式,該按鈕擁有一個ID,我需要傳遞給我的特權背景代碼。

當我在擴展的開發人員控制檯中運行代碼時,我收到消息就好 - 因此接收端似乎工作。

問題的任何線索?

謝謝你的時間。 :)

回答

2

如果檢查注入頁面的控制檯,你應該看到類似

TypeError: Converting circular structure to JSON 

這是因爲你試圖通過JSON傳遞一個HTML對象。嘗試僅傳遞按鈕的ID,然後查看它是否有效。

+0

謝謝,那就是問題所在。你也知道我在哪裏可以看到這樣的錯誤?當我打開內容腳本被注入的頁面的控制檯時,我沒有看到任何錯誤.. – ashiso

相關問題