无法使用Chrome的历史记录API删除网址

时间:2013-08-21 16:42:03

标签: javascript google-chrome google-chrome-extension browser-history

我正在制作Chrome扩展程序,使用Chrome's history API从我的历史记录中删除某些网址。这是迄今为止的代码:

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是您可以在其中输入的文本框。)

从三个alert中可以看出,变量很好。但是,代码实际上并未从历史记录中删除URL。当我检查(在chrome://history/中)时,网址仍在那里。

这是我的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

1 个答案:

答案 0 :(得分:1)

您不应该将字符串传递给chrome.history.deleteUrl方法,而是传递带有密钥网址的对象。如果您inspect your popup,您会看到以下错误:

  

错误:调用表单history.deleteUrl(字符串)与定义history.deleteUrl(对象详细信息,可选函数回调)不匹配

总之,改变

chrome.history.deleteUrl(query.value)

chrome.history.deleteUrl({ url: query.value });