0

Chrome の履歴 APIを使用して、履歴から特定の URL を削除する Chrome 拡張機能を作成しています。これまでのコードは次のとおりです。

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は入力できるテキスト ボックスです。)

3 つの s からわかるようalertに、変数は問題ありません。ただし、コードは実際には履歴から 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"
    }
}

28.0.1500.95 (Official Build 213514) mChromeのバージョンを使用しています。

4

1 に答える 1

1

メソッドに文字列を渡すのではなくchrome.history.deleteUrl、キー url を持つオブジェクトを渡す必要があります。popupを検査すると、次のエラーが表示されます。

エラー: フォーム history.deleteUrl(string) の呼び出しが定義 history.deleteUrl(object details, optional function callback) と一致しません

要約すると、変更

chrome.history.deleteUrl(query.value)

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