我正在编写用于记录Facebook使用情况的扩展程序。我发现即使facebook标签崩溃了计时器仍在计数,所以试图解决它。根据{{3}},似乎没有这样的事件。
是否有用于检测选项卡是否崩溃或崩溃事件的API?
答案 0 :(得分:4)
渲染器崩溃时会触发chrome.processes.onExited
事件(这是一个托管一个或多个标签的进程)。
此API仅供developer channel上的用户使用,因此,如果您希望为所有人广泛提供该扩展程序,则需要使用其他方法。您可以创建一个内容脚本,通过chrome.runtime.connect
创建一个消息端口,并在onDisconnect
事件中使用chrome.tabs.sendMessage
或chrome.tabs.executeScript
来检查该标签是否仍然存在:如果选项卡不再存在,然后将设置chrome.runtime.lastError
并指示通信错误。
答案 1 :(得分:0)
这是我设法检测到Chrome扩展程序中的页面崩溃的方法:
content_script:
...
chrome.runtime.onMessage.addListener(function(msg, sender, sendResponse) {
if (msg.action == 'page_check') {
sendResponse('OK');
}
});
background.js:
...
setInterval(() => {
chrome.tabs.query({ url: `http://<your_page_defined_in_manifest>` }, function (tabs) {
if (tabs.length > 0) {
chrome.tabs.sendMessage(tabs[0].id, { action: "page_check" }, function (response) {
if (!response) {
chrome.tabs.reload(tabs[0].id);
}
});
}
});
}, 60000); //every minute