我正在嘗試創建一個Chrome擴展程序,以便在進入某個網站時使用。我正在刪除下載歷史記錄。我用這從後臺頁面:chrome.downloads.erase不起作用從內容腳本啓動
chrome.downloads.erase({},
function(item)
{
console.log("Erased item");
console.log(item);
});
的問題是,當我進入我想要的網址發送後從接觸劇本的消息它無法正常工作。
我使用的內容腳本
chrome.runtime.sendMessage
在後臺頁面
chrome.runtime.onMessage.addListener
這是輸出我得到的雖然也有在下載歷史上的一些文件發送消息和接收消息:
Erased item
Array[0]
如果我從後臺頁面控制檯內部運行erase(),它會工作很好
它似乎是因爲沒有用戶交互發生。 如果我把一個清除按鈕,並點擊它刪除確實有效 但是,如果我使用超時它不 任何想法爲什麼會發生?
我已經看到,它有事情做與setTimeout的 這工作在後臺頁面:
setTimeout(function(){
console.log('erasing downloads');
chrome.downloads.erase({});
}
, 0);
但這並不:
setTimeout(function(){
console.log('erasing downloads');
chrome.downloads.erase({});
}
, 1000);
要澄清,你想要覈實整個下載歷史? – Xan 2014-10-01 13:52:05
是的。清除整個下載歷史 – 2014-10-01 20:58:25
考慮到您上次的編輯:可能是有意的,但沒有記錄。嘗試在後臺控制檯中運行代碼,但在'setTimeout(func,0)'中包裝。 – Xan 2014-10-02 13:01:46