我尝试返回 Chrome 扩展程序中的所有窗口实例,但我得到:
Error in event handler for runtime.onMessage: Error: Invocation of form windows.getAll() doesn't match definition windows.getAll(optional object getInfo, function callback)
我已将我的应用程序精简到最低限度,以下是收到错误消息时的实际设置。目的是,当我按空格键时,chrome.windows.getAll()
被调用,并且后台控制台中会显示一些内容。在出现错误之前,我确实在控制台中收到了“消息已收到”。
你知道我做错了什么,甚至错误意味着什么吗?我已在底部留下了确切的错误消息
我的 Chrome 版本是:33.0.1750.152
manifest.json
{
"manifest_version": 2,
"name": "Alt Tilde",
"version": "0.0.1",
"background": {
"scripts": ["js/bg.js"]
},
"content_scripts": [{
"matches": ["<all_urls>"],
"js": ["js/content.js"]
}]
}
js/content.js
document.addEventListener('keydown', function(e){
if(e.keyCode == 32)
chrome.runtime.sendMessage({command: 'switch-window'})
})
js/bg.js
chrome.runtime.onMessage.addListener(function(){
console.log('Message received')
console.log(chrome.windows.getAll())
})
<小时/>
完整错误消息
Error in event handler for runtime.onMessage: Error: Invocation of form windows.getAll() doesn't match definition windows.getAll(optional object getInfo, function callback)
at Object.normalizeArgumentsAndValidate (extensions::schemaUtils:113:11)
at Object.<anonymous> (extensions::binding:307:30)
at chrome-extension://aijclfleiopkccfielfjknhgpajnclah/js/bg.js:2:32
at Function.target.(anonymous function) (extensions::SafeBuiltins:19:14)
at Event.dispatchToListener (extensions::event_bindings:394:22)
at Event.dispatch_ (extensions::event_bindings:378:27)
at Event.dispatch (extensions::event_bindings:400:17)
at messageListener (extensions::messaging:192:31)
at Function.target.(anonymous function) (extensions::SafeBuiltins:19:14)
at Event.dispatchToListener (extensions::event_bindings:394:22) extensions::event_bindings:382
Event.dispatch_ extensions::event_bindings:382
Event.dispatch extensions::event_bindings:400
messageListener extensions::messaging:192
Event.dispatchToListener extensions::event_bindings:394
Event.dispatch_ extensions::event_bindings:378
Event.dispatch extensions::event_bindings:400
dispatchOnMessage extensions::messaging:307
最佳答案
如果要获取所有选项卡信息,需要定义回调。
试试这个:
chrome.windows.getAll({populate:true},function(wins){
wins.forEach(function(win){
win.tabs.forEach(function(tab){
console.log(tab.url);
});
});
});
如果您想获取选项卡信息,请记住在 list 中添加“选项卡”权限。
关于javascript - Chrome : Error in event handler for runtime. onMessage,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22549561/