gpt4 book ai didi

javascript - Chrome 扩展 : getBackgroundPage() fails only occasionally

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:00:59 25 4
gpt4 key购买 nike

我正在开发一个 Chrome 扩展,下面的代码只是有时会导致错误,并非总是如此。大多数时候,这个扩展确实能正常工作,但有时它无法获取 getBackgroundPage() 并落入“else”部分。

在 popup.js 中

  var bg = chrome.extension.getBackgroundPage();
if (bg) {
bg.some_function();
} else {
this.updateStatus("Browser error. But you don't have to reload the page to fix it. Just switch to any other browser tab and return to fix.");
}

后台页面由eventPage.js处理

list .json

"background": {
"scripts": ["eventPage.js","jquery-2.1.1.min.js"],
"persistent": false
},

此扩展作为 CMS 的辅助工具,提供高级“搜索和替换”功能。当用户在页面上的表单中编辑大量文本时,它往往会失败。可以通过重新加载页面或切换到任何其他选项卡然后返回该选项卡来解决。

popup.js getBackgroundPage() 失败是什么情况?
是否有任何解决方法可以避免此问题?

非常感谢您的见解!

最佳答案

您可能正在使用 Event Page ,即 list 中的 "persistent": false。如果闲置,它会被 Chrome 卸载。

specifically stated在文档中,chrome.extension.getBackgroundPage() 在这种情况下可能会失败,因为它是一种同步方法,如果事件页面已卸载,则不会立即返回任何内容。

要解决此问题,您应该改用 chrome.runtime.getBackgroundPage(callback)。它是异步的,能够等到后台页面为请求“启动”。

一般来说,考虑 chrome.extension API 在很大程度上(但不完全)弃用,取而代之的是一般的 runtime API。

关于javascript - Chrome 扩展 : getBackgroundPage() fails only occasionally,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25324643/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com