Google chrome extension 检测Chrome浏览器退出?

Google chrome extension 检测Chrome浏览器退出?,google-chrome-extension,Google Chrome Extension,我什么都试过了,但似乎什么都不管用。我试图通过检测窗口关闭来检测浏览的关闭,如下面的代码所示,但这对我不起作用。我做错了什么?是否有其他解决方案来检测镀铬关闭 chrome.windows.onRemoved.addListener(function(windowId){ alert("Browser exit!"); }); 一般的问题是,退出浏览器意味着浏览器无法再运行您的脚本来检查它是否已经退出——这就像试图问一个人是否已经死亡:答案(如果您得到一个)永远都是“否” 您可以尝试的一种

我什么都试过了,但似乎什么都不管用。我试图通过检测窗口关闭来检测浏览的关闭,如下面的代码所示,但这对我不起作用。我做错了什么?是否有其他解决方案来检测镀铬关闭

chrome.windows.onRemoved.addListener(function(windowId){
  alert("Browser exit!");
});

一般的问题是,退出浏览器意味着浏览器无法再运行您的脚本来检查它是否已经退出——这就像试图问一个人是否已经死亡:答案(如果您得到一个)永远都是“否”

您可以尝试的一种解决方案是一个长期运行的后台页面,其中包含:

使Chrome启动早,关闭晚,这样应用程序和扩展可以有更长的寿命

当任何已安装的托管应用程序、打包应用程序或扩展程序具有“后台”权限时,在用户启动Chrome之前,Chrome会在用户登录到其计算机后立即运行(不可见)。“后台”权限也会使Chrome继续运行(即使在最后一个窗口关闭后),直到用户明确退出Chrome


此权限允许Chrome即使在所有浏览器窗口关闭后仍继续运行您的扩展。正常情况下,Chrome只能在窗口打开时进行操作,因此我们遇到了Chrome无法检测所有窗口何时关闭的问题(如上所述)。有了后台权限,即使所有窗口都关闭了,Chrome仍能运行扩展代码。

我只是想在扩展退出而不是整个浏览器时获得控制权;我的扩展专门使用一个文本框,所以我将其onblur属性设置为一个函数,并将退出代码放在那里;也许不是你想要的,但对我来说很有用

chrome开发者网站建议不要使用背景页面,因为“它们会消耗内存和其他资源”


我同意一种更一致的方式来控制分机出口将是有用的;它是一个html页面,在其他方面似乎与dom集成在一起

chrome不提供任何API来检测chrome浏览器即将关闭。然而,当使用chrome扩展时,我们可以在后台页面中检测到chrome浏览器打开事件

background.js

    chrome.runtime.onStartup.addListener(function () {
        console.log("extension started: " + Date.now());
    });

chrome浏览器启动时将触发此事件。接下来,您可以使用任何技巧来识别chrome浏览器是否已退出。

您尝试过此解决方案吗?我当然知道。什么都不管用。如果从代码中看不出这一点,我必须提到我试图检测Chrome是否从扩展中退出。你说的“后台权限”是什么意思?你的意思是像这样的背景持久性:“背景”:{“持久性”:真的,…}@user436390对不起,我使用了错误的链接!不,该权限实际上称为“后台”(请参阅更新的链接),它与持久性不同。@user436390太好了,我很高兴它能工作!如果你的问题解决了,你应该这样做,因为这个问题被标记为已解决。我认为你关于这个问题是自相矛盾的论点是站不住脚的。在任何应用程序中,都有一个“退出前”的时刻,使开发人员能够发出事件信号并执行相关操作。这并不是说动作是突然发生的(比如停电),而是一个按钮的点击