Chrome扩展开发之History管理

历史用于记录用户访问过的页面。Chrome提供了history接口,允许扩展对用户的访问历史进行管理。

声明权限

"permissions": ["history"]

读取历史

// chrome.history.getVisits(Object, callback);
// Object中url为必选参数
// Callback中返回的对象有6个属性:id, url, title, lastVisiTime, visitCount, typedCount
chrome.history.getVisits({
    url: "https://ursb.org"
}, function(historys){
    console.log(historys);
});

搜索历史

chrome.history.search({
    text: "Holger",    // 匹配指定文字
    startTime: new Date().getTime() - 2436001000,    // 开始时间
    endTime: new Date().getTime(),    // 结束时间
    maxResults: 20    // 返回的最大数组总数
}, function(arr){
    console.log(arr);    // arr包含id, visitId, visitTime, referringVisitId, transition属性
});

添加历史

// chrome.history.addUrl(Object, callback)
// Object只需要url参数即可,callback为执行成功后调用
chrome.history.addUrl({
    url: "https://ursb.org/notes/?i=17"
}, function(){
    console.log("添加成功!");
});

删除历史

// 删除指定URL的历史
chrome.history.deleteUrl({
    url: "https://ursb.org"
}, function(){
    console.log("deleted done!");
});
// 删除指定时间段历史
chrome.history.deleteRange({
    startTime: new Date().getTime()-2436001000,
    endTime: new Date().getTime()
}, function(){
    console.log("…");
});
// 删除全部的历史
chrome.history.deleteAll(function(){
    console.log("!!");
}

监听历史操作

// 监听用户访问历史
chrome.history.onVisited.addListener(function(item){
    console.log(item);
};
// 监听用户删除历史
chrome.history.onVisitRemoved.addListener(function(item){
    console.log(item);
}