【发布时间】:2013-08-21 16:42:02
【问题描述】:
我正在制作一个 Chrome 扩展程序,以使用 Chrome's history API 从我的历史记录中删除某些 URL。到目前为止的代码如下:
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 是您可以输入的文本框。)
从三个alerts 中可以看出,变量很好。但是,代码实际上并没有从历史记录中删除 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 (Official Build 213514) m 版本。
【问题讨论】:
-
提示:当您的表单被提交时,页面将被卸载,除非您
return true;或致电event.preventDefault();。 -
@RobW 谢谢,现在尝试...编辑:仍然无法正常工作。 :(
-
@RobW 我试过了,还是不行。不过,我将这一行编辑到我的问题中,以表明这不是问题。
-
@Doorkob 检查弹出窗口。您将看到有关 API 调用不匹配的错误。
chrome.history.deleteUrl需要一个带有键url的对象,而不是字符串。 -
@RobW 啊,我刚刚按 F12 并没有看到任何错误。我现在就试试这个对象。
标签: javascript google-chrome google-chrome-extension browser-history