chrome.extension.getBackgroundPage()在一段时间后返回null

sha*_*y__ 4 javascript null google-chrome-extension

当我的chrome扩展程序在chrome启动时加载时,一切似乎都没问题,chrome.extension.getBackgroundPage()返回正确的值(从popup.js中获取).但是经过一段时间(2-3分钟),特别是如果浏览器不被允许,该函数返回null.只有关闭和重新打开铬才能解决问题.我试图通过以下方式操纵它:

if (chrome.extension.getBackgroundPage() == null) window.location.reload(true);
Run Code Online (Sandbox Code Playgroud)

正如为什么chrome.extension.getBackgroundPage()返回null所示?,这有时会有所帮助,但大多数时候它只是不断刷新应用程序,以便必须关闭chrome.有人知道可能出错吗?

S. *_*umy 8

根据引用的页面(事件和背景页面之间的差异),有一个更好的选项来获取背景,同时仍然使用事件页面:

如果您的扩展使用extension.getBackgroundPage,则切换到runtime.getBackgroundPage.较新的方法是异步的,因此它可以在返回之前根据需要启动事件页面.

这对我很有用,只需在异步回调中完成工作,异步回调接收后台页面作为函数参数.

以下是方法runtime.getBackgroundPage的规范

  • 你应该用它前面的字符`>`重新格式化引文而不是4个空格! (2认同)