我正在编写一个非常简单的Chrome扩展程序来自动清除我的历史记录,因为这不是内置功能。我已经实现了它的功能,但只是想确认我已经做了一些有意义的事情,然后再把它包起来。
首先 - 是否有理由做chrome.history.deleteAll?这实际上并不与URL浏览历史记录接口,而是需要使用chrome.browsingData。*。我还应该做前者吗?
下一步 - 搜索和搜索后,似乎无法在关机时执行某项功能。我最接近真实信息的是有人说当Chrome退出时它终止了所有扩展而没有偏见。我是否错过了在关机时清理历史记录的方法?
最后 - 由于我无法在关机时清理,我在启动时清理,在后台页面中使用window.onload。 chrome.runtime.onStartup对我来说没有可靠的工作,而window.onload确实 - 这是一个可行的方法吗?
提前感谢您的帮助。
答案 0 :(得分:3)
你是对的,没有办法在Chrome关闭时执行任何操作。 Chrome没有onClose事件。不仅字面意思,而且隐喻地说:当Chrome关闭时,它不会等待任何扩展程序关闭。
您可以从chrome.windows.onRemoved
挂起并等待最后一个窗口关闭,但如果Chrome正在关闭,则无法保证您的分机有时间运行它。与onSuspend相同的东西,或者你找到的任何东西。
因此,如果您的实施有效,则无法保证在其他Chrome中有效。
关于chrome.history.deleteAll
,我遇到同样的问题,并会尝试chrome.browsingData
,这是一种更现代,更完整的方式来处理浏览数据,包括历史记录。
答案 1 :(得分:1)
This document列出了onSuspend事件:
应用关闭前的清理
app运行时将onSuspend()事件发送到之前的事件页面 卸下它。您的活动页面可以收听此活动,并且可以 应用程序关闭前的清理任务。
触发此事件后,应用程序运行时将启动该过程 关闭应用程序:所有事件都停止触发并执行JavaScript 暂停。处理此事件时启动任何异步操作 不保证完成。使清理任务保持同步 而且简单。
chrome.runtime.onSuspend.addListener(function(){//做一些简单的事 清理任务。 });
This document表示onSuspend
也可用于扩展程序