我在其中使用了Chrome扩展程序
chrome.extension.sendRequest({name:'setemailid',details:JSON.stringify(hover),recpt:'',email:logEmail});
在content.js与background.js之间进行通信的方法。
这很好用,但是当扩展名关闭然后再打开时,它会抛出类似
的异常Uncaught Error: Invocation of form runtime.connect(string, ) doesn't match definition runtime.connect(optional string extensionId, optional object connectInfo)
at Object.normalizeArgumentsAndValidate (VM69418 extensions::schemaUtils:115)
at Object.<anonymous> (VM69413 extensions::binding:363)
at Object.<anonymous> (VM69412 extensions::extension:94)
at Object.handleRequest (VM69413 extensions::binding:64)
at Object.<anonymous> (VM69413 extensions::binding:374)
at HTMLSpanElement.<anonymous> (content.js:169)
at HTMLDocument.dispatch (jquery-1.10.2.min.js:5)
at HTMLDocument.v.handle (jquery-1.10.2.min.js:5)
目前无法重新加载我的扩展程序。
还有其他任何方法可以在content.js和background.js之间进行通信,例如调度CustomEvent。我试过了,但是background.js不监听自定义事件。
还尝试如下从background.js重新注入内容脚本
chrome.tabs.query({active: true, currentWindow: true},
function(tabs) {
chrome.tabs.executeScript(current_tab,{
file: '/js/content.js'
});
});
其中current_tab
具有myextension tab_id