Chrome扩展程序onMessage侦听器未触发

时间:2016-03-31 12:07:02

标签: google-chrome-extension

我有一个相当复杂的Chrome扩展程序已经运行了很长时间,但是当Ubuntu自动将Chromium浏览器从48.0.xxx更新到版本49.0.2623.87 Ubuntu 14.04(64位)时,那么(似乎)我的重启后,扩展脚本无法正常工作。

background.js

chrome.tabs.sendMessage(id, {text: "abc"});

contentscript.js

chrome.runtime.onMessage.addListener(
    function(request, sender, sendResponse) {
        console.log("Processing message....");
        // ... rest of code
    });

这曾经有用,但现在不行。我甚至没有在控制台中看到“处理消息....”。

此外,我还有一些额外的奇怪行为,但这可能与问题无关:

首先,我的内容脚本无法加载,抱怨manifest.json中的图标。我指定了图标大小(“16”)并且脚本能够加载。但这很奇怪,因为清单过去没有任何故障。

1 个答案:

答案 0 :(得分:0)

我找到了失败的原因。新Chrome需要放置"标签"在"permissions": [ "tabs", "http://localhost/", "clipboardRead", "clipboardWrite", "contextMenus" ], 中的权限中,例如:

chrome.tabs.query({url: "http://example.com/"} ,...);

这允许

{{1}}

上班。在我的脚本中,缺少权限导致返回垃圾,并且消息未正确发送。

Chrome更新期间的行为发生了变化。在此之前,"标签"许可要求没有严格执行。