Chrome 扩展程序 API 未在更改事件时触发

Chrome Extension API not firing onChanged event

本文关键字:事件 扩展 程序 API Chrome      更新时间:2023-09-26

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

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

代码如下所示

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

它在background.js中,文件在清单的background部分中提到。我在回调的开头添加了console.log(downloadDelta);,但它没有被触发。

此处提到了该 API

编辑:测试扩展

这很可能与事件页面的特殊性有关 - 当您的页面被卸载时无法正常工作。

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

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

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

    若要对此进行测试,请确保将诊断写入持久存储 - chrome.storage API 是其中一个选项。

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