Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/461.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在事件页中的扩展更新时更新存储架构_Javascript_Google Chrome Extension - Fatal编程技术网

Javascript 在事件页中的扩展更新时更新存储架构

Javascript 在事件页中的扩展更新时更新存储架构,javascript,google-chrome-extension,Javascript,Google Chrome Extension,我有一种方法可以在扩展更新时更改localStorage字符串的格式 问题更多的是在中的何处执行该方法。 该方法必须在更新时运行,否则整个扩展将不再工作 现在我把它放在这里: chrome.runtime.onInstalled.addListener(function(runInfo) { if (runInfo.reason=="install") { } if (runInfo.reason=="update") { //HERE!! }

我有一种方法可以在扩展更新时更改localStorage字符串的格式

问题更多的是在中的何处执行该方法。 该方法必须在更新时运行,否则整个扩展将不再工作

现在我把它放在这里:

chrome.runtime.onInstalled.addListener(function(runInfo) {
    if (runInfo.reason=="install") {

    }
    if (runInfo.reason=="update") {
        //HERE!!
    }
});
它在扩展更新时执行良好,这就是我想要的

但是,如果在更新发生时禁用了扩展,它似乎根本不会运行

然后,当再次启用扩展时,用户将认为它是一个bug

我希望有一个chrome.runtime.onEnabled,但没有这样的事件

有chrome.management.onEnabled,但我不希望事件页面因其他扩展的启用/禁用而唤醒

考虑在每次事件页面唤醒时运行该方法,方法是将其放入window.addEventListenerload,此处;,但我担心每次运行它都可能会减慢触发事件页面的实际工作

有什么建议吗?
任何开发人员现在都有更好的使用方法吗?

将其放在背景页面有什么不对?我想它会在每次更新/启用/重新启动浏览器时运行..没有问题。它当前位于非持久性后台页面事件页面中。只是在当前位置,当扩展被禁用时,它不会运行,并且在扩展被启用后它不会拾取并运行它。如果您将它放在onInstalled之外,它会运行吗?然后你可以检查版本号,看看它是否被这样的东西更新了。我不确定我是否完全看到了你的问题,但是如果这有帮助的话,最后一个链接中有一条注释,它比内容本身chrome.app.getDetails容易得多。version@judgeja那篇文章是4年前写的。现在,您应该使用chrome.runtime.getManifest.version获得扩展版本。