由于某种原因,注入(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)脚本
最佳答案
您正在尝试设置 CustomEvent
的 data
属性,但只能设置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/