将消息从contentScript发送到injectScript

时间:2016-07-08 00:25:34

标签: javascript google-chrome-extension

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

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);
});

我的注入脚本

1 个答案:

答案 0 :(得分:1)

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

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

/* ... */

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