【问题标题】:Chrome extension storage onChanged() not detecting changes (not firing)Chrome 扩展存储 onChanged() 未检测到更改(未触发)
【发布时间】:2021-09-06 15:27:48
【问题描述】:

我以前在这里看到过这个问题,但从来没有真正正确的答案。所以我在background.js 上注册了一个听众来收听chrome.storage.onChanged。但是,据我所知,尽管存储发生了变化,但它并没有触发事件。当用户单击按钮时,更改发生在 popup.js 文件中。

我已经设置了一个轮询按钮来从存储中获取最新数据并且那里显示更新,但是来自监听方法的 console.log 调用永远不会被调用。

正在更新存储中的相同项目,即没有添加或删除新项目。但是,我已经测试了添加不同的项目,但它仍然没有触发。

内部background.js

chrome.storage.onChanged.addListener(function() {
    console.log("hehe");
});

内部popup.js

chrome.storage.sync.set({"databases": dbList}, function () {
            console.log("Successfully added: " + domain);
            document.getElementById("add-remove").innerText = remove;
            setForRemove(dbList, domain)
        });

提前致谢

【问题讨论】:

标签: google-chrome-extension google-chrome-storage


【解决方案1】:

您使用的是哪个清单?我已经非常努力地让存储监听器工作:

chrome.storage.onChanged.addListener(() => {
    console.log("tick");
});

使用 Manifest v3,但它无法正常工作,甚至在服务人员处于非活动状态之前也是如此。

切换到 Manifest v2 后,一切顺利。我不鼓励使用 Manifest v3,您应该尝试按照现在推荐的方式使其工作,但如果它不起作用,无论在我的情况下如何,我都没有看到除了使用旧的其他方法清单。

【讨论】:

    猜你喜欢
    • 2014-09-10
    • 2021-09-02
    • 1970-01-01
    • 2021-04-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-06
    相关资源
    最近更新 更多