javascript - cant send chrome-extension message more than once -
im using chrome extension long-lived connection in app. @ 1st time send message good, @ 2nd time exception: "attempting use disconnected port object". code (i removed catch code):
content.js:
var port = chrome.runtime.connect({name: "letmeknow"}); function checkif_hiddendiv_waschanged() { try { port.postmessage({message: contentscriptmessage}); } catch(err) { ; } } port.onmessage.addlistener(function(msg) { try { messagedata=msg.data; alert('content received: '+messagedata); } catch(err) { ; } });
background.js:
chrome.runtime.onconnect.addlistener(function(port) { console.assert(port.name == "letmeknow"); port.onmessage.addlistener(function(msg) { try { returnmessage(port, msg.message); } catch(err) { ; } }); }); //==============================================// function returnmessage(port, messagetoreturn) { try { chrome.tabs.getselected(null, function(tab) { var joinedmessage = messagetoreturn + '***' +backgroundscriptmessage; alert('bg send: '+joinedmessage); alert(port.name); port.postmessage({data: joinedmessage}); alert(port.name); }); } catch(err) { ; } }
manifest.json:
{ "manifest_version": 2, "name": "myapp", "version": "1.0", "browser_action": { "default_icon": "icon.png", "default_popup": "mainpage.html" }, "background": { "page": "mainpage.html" }, "content_security_policy": "script-src 'self' 'unsafe-eval'; object-src 'self'", "content_scripts": [ { "matches": ["<all_urls>"], "js": ["content.js"] } ], "permissions": ["tabs","cookies","activetab","https://api.domain.com/","<all_urls>"] }
what do wrong? (i saw versions in 'var port = chrome.runtime.connect...' defind inside background.js. need defind now.)
Comments
Post a Comment