Gum*_*ble 7 javascript google-chrome google-chrome-extension
尝试在我的内容和后台脚本之间进行通信时,我收到以下错误:
Port error: Could not establish connection. Receiving end does not exist.
Error in event handler for 'undefined': Cannot read property 'message' of undefined
TypeError: Cannot read property 'message' of undefined
Run Code Online (Sandbox Code Playgroud)
background.js
function onRequest(request, sender, callbackFunction) {
console.log("Me (BS) became this Message:" + request.message);
sendResponse({message: request.message})
};
chrome.extension.onRequest.addListener(onRequest);
Run Code Online (Sandbox Code Playgroud)
streamcloud.js
function contactBackground(nachricht){
chrome.extension.sendMessage({message: nachricht}, function(response) {
console.log("The Background Script got the following Message: " + response.message);
});
}
Run Code Online (Sandbox Code Playgroud)
和我的manifest.json
{
"name": "InstantWatch - Dev",
"manifest_version": 2,
"version": "0.7",
"permissions": ["tabs", "http://*/", "https://*/"],
"background": {
"scripts": ["background.js"]
},
"browser_action": {
"default_title": "InstantWatch",
"default_icon" : "icon.ico"
},
"content_scripts": [
{
"matches": ["http://*/*", "http://*/*"],
"js": ["jquery.js", "streamcloud.js"]
}
]
}
Run Code Online (Sandbox Code Playgroud)
我找到了添加background_page的解决方案:"background.html",其中包含空的background.html,但由于manifest_version:2不支持background_page,所以我无法使用它.
Rob*_*b W 25
sendMessage
并且onRequest
是不兼容.
如果您需要支持Chrome 19及更早版本,请使用onRequest
和sendRequest
:
chrome.extension.onRequest.addListener(function(request, sender, sendResponse) {
// Warning: Chrome 19- [receiver]
});
chrome.extension.sendRequest(message, optional_sendResponse);
Run Code Online (Sandbox Code Playgroud)
对于Chrome 20 - 25,请使用和:chrome.extension.onMessage
chrome.extension.sendMessage
chrome.extension.onMessage.addListener(function(request, sender, sendResponse) {
// Chrome 20+
});
chrome.extension.sendMessage(message, optional_sendResponse);
Run Code Online (Sandbox Code Playgroud)
对于Chrome 26+,请使用和.chrome.runtime.onMessage
chrome.runtime.sendMessage
注意:从Chrome 26开始,仍然支持已弃用的方法,尽管没有记录.如果您有机会,请更新您的扩展程序以使用新方法,以确保您的扩展程序将来仍可使用.
有关创建与Chrome 20+兼容的代码,请参阅此答案.
归档时间: |
|
查看次数: |
27848 次 |
最近记录: |