此消息始终出现在chrome开发人员工具的控制台中:
Port error: Could not establish connection. Receiving end does not exist. miscellaneous_bindings:232
chromeHidden.Port.dispatchOnDisconnect miscellaneous_bindings:232
Error in event handler for 'undefined': Cannot read property 'instanceId' of undefined TypeError: Cannot read property 'instanceId' of undefined
at [object Object].<anonymous> (chrome-extension://mgijmajocgfcbeboacabfgobmjgjcoja/content_js_min.js:2:372)
at chrome-extension://mgijmajocgfcbeboacabfgobmjgjcoja/content_js_min.js:1:182
at miscellaneous_bindings:276:11
at [object Object].dispatch (event_bindings:203:41)
at Object.<anonymous> (miscellaneous_bindings:235:27) event_bindings:207
chrome.Event.dispatch event_bindings:207
chromeHidden.Port.dispatchOnDisconnect miscellaneous_bindings:235
Run Code Online (Sandbox Code Playgroud)
这是chrome中的错误还是我的chrome安装有问题?
我正在尝试将数据从弹出窗口传递到内容脚本,但我没有运气.我让它以相反的方式工作(内容 - >弹出窗口).我想要做的就是将文本输入到弹出窗口中的输入中,然后单击一个提交按钮,该按钮会将该文本插入到网页的dom中.
这就是我所拥有的:
popup.html
chrome.extension.sendRequest({action:'start'}, function(response) {
console.log('Start action sent');
});
Run Code Online (Sandbox Code Playgroud)
contentscript.js
function startExtension() { console.log('Starting Extension'); }
function stopExtension() { console.log('Stopping Extension'); }
function onRequest(request, sender, sendResponse) {
if (request.action == 'start')
startExtension()
else if (request.action == 'stop')
stopExtension()
sendResponse({});
}
chrome.extension.onRequest.addListener(onRequest);
Run Code Online (Sandbox Code Playgroud) 我正在开发 Chrome 扩展程序,但最近我注意到我收到了以下错误(指向 的第一行popup.html):
未经检查的 runtime.lastError: 无法建立连接。接收端不存在。
我在这里找到了一个类似的问题。但是那里的错误是由background我没有在清单上声明的属性引起的。
我chrome.extension.onMessage.addListener在contents.js脚本上使用来侦听事件并chrome.tabs.sendMessage在popup.js脚本上使用来发送事件。大多数情况下一切正常,但有时我会收到上述错误并且没有任何请求执行任何操作。
其manifest.json格式如下:
{
"manifest_version": 2,
"name": "APP_NAME",
"description": "APP_DESCRIPTION",
"version": "APP_VERSION",
"browser_action": {
"default_icon": "icon.png",
"default_popup": "popup.html"
},
"permissions": [
"activeTab",
"storage",
"clipboardRead",
"clipboardWrite"
],
"content_scripts": [
{
"matches": [
"<all_urls>"
],
"js": [
"content.js"
],
"css": [
"content.css"
]
}
]
}
Run Code Online (Sandbox Code Playgroud)
{
"manifest_version": 2,
"name": "APP_NAME",
"description": "APP_DESCRIPTION",
"version": "APP_VERSION",
"browser_action": {
"default_icon": …Run Code Online (Sandbox Code Playgroud)我正在开发Chrome扩展程序,我正在寻找如何(从后台页面)查看弹出页面是否打开.我查看了消息传递,但我不确定这是否会帮助我或者是否有更简单的方法.
谢谢!
我正在构建一个chrome扩展,它通过websockets与nodejs服务器通信.其重点是跟踪内容的浏览历史记录.这一切似乎都有效,但偶尔(30%的时间)传递给onMessage.addListener的函数中的回调不会正确触发.我来告诉你代码:
background.js
var socket = io('http://localhost:3000/');
var tabLoad = function (tab) {
socket.emit('page load', tab);
};
var tabUpdate = function (tabid, changeinfo, tab) {
var url = tab.url;
if (url !== undefined && changeinfo.status == "complete") {
tab.user_agent = navigator.userAgent;
tab.description = '';
tab.content = '';
socket.emit('insert', tab);
}
};
socket.on('inserted', function(page){
socket.emit('event', 'Requesting page content\n');
//page = {tab: page, id: docs._id};
chrome.tabs.sendMessage(page.tab_id, {requested: "content", page: page}, function(data) {
socket.emit('content', data);
});
});
try {
chrome.tabs.onCreated.addListener(tabLoad);
chrome.tabs.onUpdated.addListener(tabUpdate);
} catch(e) { …Run Code Online (Sandbox Code Playgroud)