该页面翻译自 Google Chrome Extensions 与 Google Chrome Apps。除非特别说明,该页面的内容遵循 Creative Commons Attribution 3.0 License,代码示例遵循 BSD License。
描述: |
使用 chrome.browsingData API 从用户的本地配置文件删除浏览数据。
|
可用版本: |
从 Chrome 19 开始稳定支持。
|
权限: |
"browsingData"
|
您必须在扩展程序的清单文件中声明 "browsingData" 权限才能使用这一 API。
{ "name": "我的扩展程序", ... "permissions": [ "browsingData", ], ... }
这一 API 最简单的用法就是基于时间清理用户浏览数据。您的代码应该提供时间戳,指定应该删除的是在这一历史时刻之后的用户浏览数据。这一时间戳的格式为自 1970 年 1 月 1 日以来所经过的毫秒数(可以通过 JavaScript 中 Date
对象的 getTime
方法获得)。
例如,要清除上一周的用户浏览数据,您可以编写如下代码:
var callback = function () { // 数据清除后可以在这里进行一些处理。 }; var millisecondsPerWeek = 1000 * 60 * 60 * 24 * 7; var oneWeekAgo = (new Date()).getTime() - millisecondsPerWeek; chrome.browsingData.remove({ "since": oneWeekAgo }, { "appcache": true, "cache": true, "cookies": true, "downloads": true, "fileSystems": true, "formData": true, "history": true, "indexedDB": true, "localStorage": true, "pluginData": true, "passwords": true, "webSQL": true }, callback);
chrome.browsingData.remove
方法允许您通过一次调用删除多种类型的浏览数据,并且比多次调用更具体的方法要快得多。然而,如果您只需要清除某种具体类型的浏览数据(例如 Cookie),粒度更细的方法要比包含 JSON 的调用更具可读性。
var callback = function () { // 数据清除后可以在这里进行一些处理。 }; var millisecondsPerWeek = 1000 * 60 * 60 * 24 * 7; var oneWeekAgo = (new Date()).getTime() - millisecondsPerWeek; chrome.browsingData.removeCookies({ "since": oneWeekAgo }, callback);
重要: 清除浏览数据涉及到后台大量的负荷,取决于用户配置文件,可能需要几十秒来完成。您应该使用回调机制通知用户清除状态。
向该 API 的选项对象添加一个 originTypes
属性允许您指定哪些类型的来源应该受到影响。目前来源分为三类:
unprotectedWeb
包括了用户访问网站、不进行特殊操作的一般情况。如果您没有指定
originTypes
,该 API 默认情况下删除来自不受保护的网络来源的数据。
protectedWeb
包括了安装为托管应用的网络来源。例如,安装
Angry Birds
后来源
http://chrome.angrybirds.com
将受到保护,并将从
unprotectedWeb
分类中移除。在执行这些来源内的删除操作时请格外小心:确保您的用户知道这样做的结果,因为这可能会彻底删除他们的游戏数据。没有人愿意一次又一次地推倒小猪的屋子。
extension
包括了
chrome-extensions:
协议下的来源。删除扩展程序数据同样是您应该格外小心的事情。
我们可以调整前一个例子,只删除来自受保护的网络来源的数据,如下所示:
var callback = function () { // 数据清除后可以在这里进行一些处理。 }; var millisecondsPerWeek = 1000 * 60 * 60 * 24 * 7; var oneWeekAgo = (new Date()).getTime() - millisecondsPerWeek; chrome.browsingData.remove({ "since": oneWeekAgo, "originTypes": { "protectedWeb": true } }, { "appcache": true, "cache": true, "cookies": true, "downloads": true, "fileSystems": true, "formData": true, "history": true, "indexedDB": true, "localStorage": true, "serverBoundCertificates": true, "pluginData": true, "passwords": true, "webSQL": true }, callback);
特别重要:使用 protectedWeb
与
extension
时必须格外小心,这些是毁灭性的操作,如果没有很好地告知用户您的扩展程序代表他们删除数据的后果,您会收到用户写来的愤怒的邮件。
browsingData
API
的例子在示例页面中可用。
报告“清除浏览数据”用户界面中哪些类型的数据当前以选中。注意:该 API 中包含的某些数据类型不能在设置用户界面中访问,而某些用户界面设置控制这里列出的几种数据类型。
callback 参数应该指定一个如下形式的函数:
function(object result) {...};
true
,否则为 false
。
true
,不允许则为 false
。
清除储存在用户配置文件中的各种浏览数据。
如果您指定了 callback 参数,它应该指定一个如下形式的函数:
function() {...};
清除特定时间段内的浏览器 Cookie 与修改过的服务器绑定证书。
如果您指定了 callback 参数,它应该指定一个如下形式的函数:
function() {...};
清除浏览器中已下载的文件列表(不是已下载的文件本身)。
如果您指定了 callback 参数,它应该指定一个如下形式的函数:
function() {...};
清理浏览器保存的表单数据(自动填充)。
如果您指定了 callback 参数,它应该指定一个如下形式的函数:
function() {...};
清除网站的 IndexedDB 数据。
如果您指定了 callback 参数,它应该指定一个如下形式的函数:
function() {...};