javascript - Chrome : Error in event handler for runtime. onMessage

标签 javascript google-chrome google-chrome-extension

我尝试返回 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/

相关文章:

javascript - CSS3 动画完成时是否有回调?

javascript - Chrome 应用程序中的按钮不起作用

javascript - Google Chrome 到底是怎么知道我的来源是什么/在哪里以及如何解释它们的?

python-3.x - SessionNotCreatedException : Message: session not created from disconnected: unable to connect to renderer with ChromeDriver 2. 45 Chrome v71

google-chrome - "Getting started with Greasemonkey"教程的建议

javascript - 使用 Angular Directive 控制多个 DOMS?

javascript - 从element指令中的routeProvider获取参数

javascript - JSON/JavaScript 获取对象键

google-chrome - 添加 chrome.webRequest 监听器时出现 "No matching signature"错误

google-chrome-extension - 我可以在 Browserstack 上运行时添加 Chrome 扩展吗?