我正在尝试创建一个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