0

我正在制作一个 Chrome 扩展程序,以使用Chrome 的 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。当我检查 (in 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"
    }
}

我正在使用28.0.1500.95 (Official Build 213514) mChrome 版本。

4

1 回答 1

1

您不应将字符串传递给该chrome.history.deleteUrl方法,而应将其传递给带有键 url 的对象。如果您检查您的弹出窗口,您会看到以下错误:

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

总而言之,改变

chrome.history.deleteUrl(query.value)

chrome.history.deleteUrl({ url: query.value });
于 2013-08-21T20:04:34.827 回答