【发布时间】:2016-01-28 17:50:34
【问题描述】:
我正在创建我的第一个 Chrome 扩展程序,该扩展程序将允许用户输入搜索词,该搜索词将在浏览器历史记录中搜索并显示结果,之后用户可以通过单击删除结果删除按钮。这是我的代码 -
window.onload = function() {
function getHistory() {
var div = document.getElementById('all');
var search = document.getElementById("search").value;
if (search === '') {
div.innerHTML = '';
div.innerHTML = div.innerHTML + 'Nothing To Search.';
}
else {
var microseconds = 1000 * 60 * 60 * 24 * 365 * 45;
var start = (new Date).getTime() - microseconds;
chrome.history.search({text: search, startTime: start, maxResults: 200}, function(data) {
if(Object.keys(data).length === 0) {
div.innerHTML = '';
div.innerHTML = div.innerHTML + 'Nothing Found.';
}
else {
div.innerHTML = '';
data.forEach(function(page) {
div.innerHTML = div.innerHTML + '<p>'+page.title+'</p> <a href='+page.url+' target="_blank"><p>'+page.url+'</p></a> <br>';
});
document.getElementById('delete').onclick = deleteHistory;
}
});
}
}
function deleteHistory() {
var search = document.getElementById("search").value;
var microseconds = 1000 * 60 * 60 * 24 * 365 * 45;
var start = (new Date).getTime() - microseconds;
chrome.history.search({text: search, startTime: start, maxResults: 200}, function(data) {
var div = document.getElementById('all');
data.forEach(function(page) {
chrome.history.deleteUrl({url: page.url}, function() {
div.innerHTML = '';
div.innerHTML = div.innerHTML + 'All Clear!';
});
});
});
}
document.getElementById('get').onclick = getHistory;
}
到目前为止,一切正常,除了当我删除历史记录时,它已被删除,但仍显示在浏览器历史记录中。 请告诉我我做错了什么?还有什么我可以在代码中改进的地方吗? 谢谢。
【问题讨论】:
-
什么是 console.log(JSON.stringify(page))?
-
对不起,我没有看到 console.log(JSON.stringify(page))。什么意思?
-
在你的 .foreach() 中添加 console.log(JSON.stringify(page))。
-
我检查了这个,我的删除功能工作正常。如果我通过扩展删除历史记录,它不会再次显示在控制台中,但仍会显示在浏览器历史记录中。
-
也许同步正在重新填充已删除的项目?
标签: javascript google-chrome google-chrome-extension browser-history