2013-06-26 151 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

相关问题