我正在尝试在注入的脚本中使用一个函数,该脚本获取一些参数并将它们转发到内容脚本,然后内容脚本将其转发到后台脚本。我已阅读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到文档中,填充并随后从内容脚本中读取它。然而,这似乎不如为事件附加细节那么优雅。
有什么想法吗?