当用户转到此网址时,我尝试删除缓存 stackoverflow.com/?clear 然后重新加载并转到 stackoverflow.com 有一个干净的缓存,我尝试了很多方法,但我失败了。
这是我的最后一次尝试,它根本不影响缓存!
清单代码
{
"name": "stackoverflow",
"version": "1.0",
"background": {
"scripts": ["jquery.js","background.js"],
"persistent": false
},
"page_action" :
{
"default_icon" : "icon.png",
"default_title" : "Remove"
},
"permissions" : [
"declarativeContent", "browsingData", "tabs"
],
"manifest_version": 2
}
background.js
chrome.runtime.onInstalled.addListener(function() {
// Replace all rules ...
chrome.declarativeContent.onPageChanged.removeRules(undefined, function() {
// With a new rule ...
chrome.declarativeContent.onPageChanged.addRules([
{
// That fires when a page's URL contains a 'stackoverflow.com/?clea' ...
conditions: [
new chrome.declarativeContent.PageStateMatcher({
pageUrl: { urlContains: 'stackoverflow.com/?clear' },
})
],
// And shows the extension's page action.
actions: [ new chrome.declarativeContent.ShowPageAction() ]
}
]);
});
});
function clearMe(tab) {
var ms = (30 * 60) * 1000; // 30 minutes
var time = Date.now() - ms;
chrome.browsingData.removeCache({"since": time}, function() {
chrome.tabs.update({url: 'http://stackoverflow.com'});
});
}
//It will be perfect if user do not have to click
chrome.pageAction.onClicked.addListener(clearMe)
我甚至不需要用户点击按钮就可以更好地删除缓存。
答案 0 :(得分:3)
tabs
api应该足够了。这是你应该怎么做的。我已经对它进行了测试,并且工作正常。
清单代码
{
"name": "stackoverflow",
"version": "1.0",
"background": {
"scripts": ["background.js"],
"persistent": false
},
"permissions" : [
"tabs", "browsingData"
],
"manifest_version": 2
}
<强> background.js 强>
chrome.tabs.onUpdated.addListener(function (tabId, changeInfo, tab) {
// if url is changed
if (changeInfo.url) {
var url = changeInfo.url;
if (url.indexOf("stackoverflow.com/?clear") != -1) {
alert("Clearing cache...");
clearMe(tab);
}
}
});
function clearMe(tab) {
var ms = (30 * 60) * 1000; // 30 minutes
var time = Date.now() - ms;
chrome.browsingData.removeCache({"since": time}, function() {
chrome.tabs.update(tab.id, { url: 'http://stackoverflow.com' });
});
}