這裏是我的設置再來一次:錯誤:嘗試使用斷開的端口對象,如何?
background.js
var port = null;
function setPort() {
chrome.tabs.query({active: true, currentWindow: true}, function (tabs) {
port = chrome.tabs.connect(tabs[0].id, {name: "CONTENTSCRIPT"});
});
}
// when i click on something, get the port and send a message
function clickHandler(e) {
setPort();
if (port) {
port.postMessage({key: 'message', value: true});
}
}
contentscript.js
chrome.runtime.onConnect.addListener(function (port) {
if (port.name == "CONTENTSCRIPT") {
port.onMessage.addListener(function (msg) {
console.log(msg);
});
}
});
什麼我做的是點擊隨機選項卡的文本菜單按鈕,並嘗試發送meessage。
發生什麼事是我點擊第一個齒,沒有任何反應,沒有錯誤。第二次,我點擊消息通過。
如果我切換到另一個選項卡,並單擊菜單按鈕,我得到Error: Attempting to use a disconnected port object
錯誤。如果我再次點擊該消息被成功
送我試着每次使用var port = chrome.runtime.connect({name: "CONTENTSCRIPT"});
但錯誤出有斷開的端口
想法?