Javascript 无法使用Chrome'删除URL;s历史API
我正在做一个Chrome扩展,用它从我的历史记录中删除某些URL。以下是迄今为止的代码:Javascript 无法使用Chrome'删除URL;s历史API,javascript,google-chrome,google-chrome-extension,browser-history,Javascript,Google Chrome,Google Chrome Extension,Browser History,我正在做一个Chrome扩展,用它从我的历史记录中删除某些URL。以下是迄今为止的代码: document.addEventListener('DOMContentLoaded', function() { var form = document.getElementById('form'), query = document.getElementById('query') form.onsubmit = function(e) { e.preve
document.addEventListener('DOMContentLoaded', function() {
var form = document.getElementById('form'),
query = document.getElementById('query')
form.onsubmit = function(e) {
e.preventDefault()
// alert(chrome.history) // [object Object]
// alert(chrome.history.deleteUrl) // function () { [native code] }
// alert(query.value) // whatever I typed
chrome.history.deleteUrl(query.value)
}
query.focus()
})
(form
是我弹出窗口中的表单,query
是您可以在其中键入的文本框。)
正如您可以从三个警报中看到的那样,变量很好。但是,代码实际上并没有从历史记录中删除URL。当我签入时(在chrome://history/
),URL仍然存在
这是我的manifest.json
,如果这很重要的话:
{
"manifest_version": 2,
"name": "UnVizit",
"description": "Mark a link as \"not visited\" easily",
"version": "0.1.0",
"permissions": [
"history"
],
"browser_action": {
"default_icon": "icon.png",
"default_popup": "popup.html"
}
}
我正在使用Chrome的版本28.0.1500.95(官方版本213514)m
。您不应该向方法传递字符串,而应该传递一个带有键url的对象。如果选择,您将看到以下错误:
错误:调用表单历史记录。deleteUrl(字符串)与定义历史记录不匹配。deleteUrl(对象详细信息,可选函数回调)
总之,改变
chrome.history.deleteUrl(query.value)
到
chrome.history.deleteUrl({url:query.value});
提示:提交表单时,页面将被卸载,除非返回true代码>或调用事件.preventDefault()代码>@RobW谢谢,现在就试试。。。编辑:仍然不起作用:(@RobW我试过了,但仍然不起作用。不过,我将这一行编辑到了我的问题中,以表明这不是问题所在。@Doorkob检查弹出窗口。您将看到一个关于不匹配的API调用的错误。应该是一个键为url
,而不是字符串的对象。@RobW啊,我刚刚按F12键,没有看到任何错误。我现在将尝试该对象。