在内容和注入的脚本之间交换数据

时间:2014-05-26 21:09:18

标签: javascript google-chrome-extension

我正在尝试在注入的脚本中使用一个函数,该脚本获取一些参数并将它们转发到内容脚本,然后内容脚本将其转发到后台脚本。我已阅读Chrome extension - retrieving Gmail's original message,但应用该代码无效。我有以下注入的代码。

   window.postToContentScript = function(cmd, payload)  {
        var obj = {"command": cmd, "data": payload};        
        console.error(obj);
        document.dispatchEvent(new CustomEvent('MyCustomEvent', {
            detail: obj,
        })); 
    }

调用时,它会将我传递的参数记录到控制台(因此不是问题......)。在内容脚本中,我有以下代码:

document.addEventListener("MyCustomEvent", function(e) {
    console.error(e);
})

我猜它实际上应该包含一个带有属性命令和数据的对象,但是事件的detail属性只是null。我意识到接近这个的一种方法是添加例如隐藏的textarea到文档中,填充并随后从内容脚本中读取它。然而,这似乎不如为事件附加细节那么优雅。

有什么想法吗?

0 个答案:

没有答案