Chrome Extension API未触发onChanged事件

时间:2016-01-25 11:52:11

标签: javascript google-chrome google-chrome-extension

我正在使用chrome.downloads.onChanged.addListener查找下载完成的时间。

回调有时不会触发,并且没有明显的理由。

代码看起来像这样

chrome.downloads.onChanged.addListener(function (downloadDelta) {...});

它在background.js中,并且在清单的background部分中提到了文件。我在回调的最初阶段添加了console.log(downloadDelta);,但它没有被解雇。

提到了API here

编辑:Test extension

1 个答案:

答案 0 :(得分:1)

很可能这与Event pages的特性有关 - 当你的页面被卸载时,某些东西无法正常工作。

这很容易测试 - 从清单中删除"persistent": "false"

也就是说,您的测试扩展程序不会违反任何事件页面建议,chrome.downloads API不会列出任何不兼容性。因此,有两种情况可能:

  1. 由于页面被卸载,您很可能误解了结果。例如,如果页面在回调执行和打开devtools之间被卸载 - 控制台和所有本地状态将被擦除。

    要测试它,请确保将诊断写入持久存储 - chrome.storage API是一个选项。

  2. 如果您100%确定上述情况并非如此,则可能存在与事件页面和chrome.downloads相关的错误。在这种情况下,应该报告。