我尝试为chrome编写简单的插件,我有内容脚本和扩展本身。根据谷歌文档,我尝试设置简单的消息传递: Here
这是我的manifest.json
文件:
{
"manifest_version": 2,
"name": "My Plugin",
"description": "My Plugin",
"version": "1.0",
"browser_action": {
"default_icon": "icon.png",
"default_popup": "popup.html"
},
"permissions": [
"activeTab"
],
"content_scripts": [
{
"matches": ["*://*/*"],
"js": ["js/content.js"]
}
]
}
这是content.js
档案:
chrome.runtime.onMessage.addListener(
function (request, sender, sendResponse) {
debugger;
if (request.action === "GetPageContent") {
sendResponse({ dom: document.documentElement.outerHTML });
}
}
);
这是来自app.js
的片段代码,它将消息发送到内容脚本文件:
chrome.tabs.getSelected(null, function (tab) {
chrome.tabs.sendMessage(tab.id, { action: "GetPageContent" }, function (response) {
console.log(response);
});
});
因此,当我点击按钮触发执行时,它在content.js
文件中失败
在线sendResponse({ dom: document.documentElement.outerHTML });
说:
chrome.runtime.onMessage.addListener
Error in event handler for runtime.onMessage:
Error: Attempting to use a disconnected port object
这是什么意思?我没有使用任何端口,也在谷歌文档中也没有任何提及简单消息的端口。 谢谢!
答案 0 :(得分:0)
我找到了一个原因,Chrome开发者控制台,如果它在我测试我的扩展程序的同时打开,则会发生此错误。