javascript - 将消息从 contentScript 发送到 InjectedScript

标签 javascript google-chrome-extension

由于某种原因,注入(inject)的脚本将无法获取内容脚本发送的内容。

document.dispatchEvent(new CustomEvent('ToFBScript',{detail: {data: "Hello    World"}}));

//Injecting Script
var s = document.createElement('script');
s.src = chrome.extension.getURL('fbscriptforextension.js');
(document.head||document.documentElement).appendChild(s);
s.onload = function(){
 s.parentNode.removeChild(s);
};

我的内容脚本

var storage;
document.addEventListener('ToFBScript',function(e){
storage = e.detail.data;
console.log(storage);
});

我的注入(inject)脚本

最佳答案

您正在尝试设置 CustomEventdata 属性,但只能设置detail。幸运的是,您可以将其设置为任何可 JSON 序列化的值。

document.dispatchEvent(new CustomEvent('ToFBScript', {detail: {data: g}}));

/* ... */

document.addEventListener('ToFBScript', function(e) {
  storage = e.detail.data;
}

关于javascript - 将消息从 contentScript 发送到 InjectedScript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38257263/

相关文章:

javascript - sencha touch2 中的加载掩码

javascript - 带有 NodObjC 的 NSStatusBar

javascript - Chrome 扩展 - Chrome.storage - 为什么 chrome.storage.sync.get 返回未定义?

javascript - 将文本添加到输入并触发 ajax 搜索

javascript - 在双显示器上从 Chrome 扩展程序打开弹出窗口

javascript - 结合 ES6 unicode 文字和 ES6 模板文字

javascript - 套接字不适用于 jQuery Mobile 事件

javascript - 如何关闭 Meteor 中的 Velocity 单元测试?

javascript - 浏览器扩展检测安装

javascript - 从 Chrome 扩展程序中的 URL 自动填充