我想清除历史记录并仅在我打开浏览器时自动缓存,但不是在我从chrome:// extensions重新加载扩展时。我该怎么做?我正在谈论Chrome JavaScript API。我在Ubuntu 16.04上使用最新版本的Google Chrome。
LE:我做了一个扩展,在许多事情中清除了我的历史和缓存。在manifest.json中,我有:
"background": {"scripts": ["SessionManager.js"],"persistent":true},
在SessionManager.js中,我有:
function init(){
setTimeout(clean,1);
}
function clean(){
chrome.browsingData.remove({},{'appcache':true,'cache':true,'cookies':true,'downloads':true,'fileSystems':true,'formData':true,'history':true,'indexedDB':true,'localStorage':true,'serverBoundCertificates':true,'passwords':true,'pluginData':true,'serviceWorkers':true,'webSQL':true});
}
init();
答案 0 :(得分:2)
您需要chrome.runtime.onStartup
event。
更新/手动重新加载扩展程序时,其onInstalled
事件会触发,但不会onStartup
。另一方面,在每个浏览器开始时,您都会获得onStartup
个事件。
// background script
chrome.runtime.onStartup.addListener(function() {
// Nuke things here, probably with chrome.browsingData API
});
请注意,如果Chrome在最后一个窗口关闭时继续在后台运行(例如Chrome应用仍在运行,或者某个扩展程序请求"background"
权限),则重新打开该窗口将不会注册为onStartup
。解决方法是使用chrome.windows.onCreated
查看新打开的窗口是否是唯一的窗口:
chrome.windows.onCreated.addListener(function() {
chrome.windows.getAll(function(windows) {
if (windows.length == 1) {
// Chrome was running, but in background: it now "opened"
}
});
})