Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/447.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 无法使用Chrome'删除URL;s历史API_Javascript_Google Chrome_Google Chrome Extension_Browser History - Fatal编程技术网

Javascript 无法使用Chrome'删除URL;s历史API

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

我正在做一个Chrome扩展,用它从我的历史记录中删除某些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
是您可以在其中键入的文本框。)

正如您可以从三个
警报中看到的那样,变量很好。但是,代码实际上并没有从历史记录中删除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键,没有看到任何错误。我现在将尝试该对象。