Google chrome extension 创建扩展名以防止下载文件

Google chrome extension 创建扩展名以防止下载文件,google-chrome-extension,Google Chrome Extension,我正在尝试创建一个扩展名来阻止Chrome下载任何文件,但我没有成功 这是我的舱单 {"name": "Download Cancel", "description": "Prevents Downloads", "version": "0.1", "background": {"scripts": ["background.js"], "persistent": false}, "permissions": ["downloads", "tabs", "http://*/*","htt

我正在尝试创建一个扩展名来阻止Chrome下载任何文件,但我没有成功

这是我的舱单

{"name": "Download Cancel",
 "description": "Prevents Downloads",
 "version": "0.1",
 "background": {"scripts": ["background.js"], "persistent": false},
 "permissions": ["downloads", "tabs", "http://*/*","https://*/*"],
 "manifest_version": 2}
和background.js

chrome.downloads.onCreated.addListener(function(item) {
  chrome.downloads.cancel(item.id);
  alert("Downloading files is not permitted");
  chrome.downloads.removeFile(item.id);
});

有人能就我做错了什么提供一些建议吗?

由于您已经阻止下载文件,但为了防止文件崩溃,您可以检查下载是否已完成,如果是,则在该if块中删除它

chrome.downloads.onCreated.addListener(function(item) {
    chrome.downloads.cancel(item.id);
    if(item.state == "complete"){
        chrome.downloads.removeFile(item.id);
    }
});

你为什么不使用onCreated而不是onDeterminingFilename来执行此操作?我尝试了这两种方法(只是将OnDeterminingFile替换为onCreated),但也没有成功。请使用小写的
item.id
而不是
item.id
。如果你检查错误,你会发现错误的。不过,该扩展无法按预期工作:当您关闭Chrome时,所有下载对话框将再次出现(不确定这是错误还是功能)。谢谢@Rob的建议。现在我来讨论一个问题。如果用户下载了一些非常小的东西,比如图像,它就不能及时取消。发生这种情况时,我希望删除该文件。唯一的问题是,当我在整个事件侦听器中查看item.state时,它会说它正在进行中。如果我只是在cancel之后添加removeFile调用,它通常会使浏览器崩溃,除非下载实际完成。有谁能帮我把状态设置为,这样我就可以知道我是否应该删除该文件?(我已将我原来问题中的代码更新为我目前拥有的代码)@user3158161崩溃?创建一个复制问题的最小扩展,并在上报告。如果用户将首选项设置为“下载前询问保存每个文件的位置”(位于
chrome://settings
->“显示高级设置”->“下载”)?我猜onCreated是在对话框打开后触发的,这可能太晚了。为什么要阻止下载?