Chrome扩展程序:下载

use*_*593 1 javascript json google-chrome google-chrome-extension

我最后也是最后一个问题.我似乎无法在扩展中使用.downloads函数.我收到了错误

无法读取undefined的属性'download'

小心我删除了一些代码,以便它适合我的代码

var contentInput = document.createElement("div")
contentInput.innerHTML = '<div style="position:relative; width: 145px;height: 30px;right: 0px;left: 14px;padding-top: 0px;top: 0px;"><div class="btn-primary btn-medium" style="position: absolute;left: 0px;" draggable="true">Download .OBJ</div><p style="position:relative; top: 33px; font-size:15px">Click to download the OBJ version of this asset.</p> </div>'
contentInput = contentInput.children[0].children[0]

localStorage.setItem("OBJURL", jsonObject.Url); //It's saved!
});

var objurl = localStorage.getItem("OBJURL");
SendRequest(objurl, function (objfinal) {

});
    chrome.downloads.download({url:objurl,filename:"wat23333.obj",conflictAction:"overwrite"})
    chrome.extension.sendRequest({
        action: "EditContent",
        type: assetType,
        name: assetName, 
        content: contentData
    })

}
Run Code Online (Sandbox Code Playgroud)

清单文件

权限

"permissions": [
    "http://*.roblox.com/*",
    "http://*.rbxcdn.com/*",
    "downloads",
    "downloads.open"
],
Run Code Online (Sandbox Code Playgroud)

Xan*_*Xan 5

德夫林的猜测几乎是正确的.

当这些条件中的任何一个成立时都会发生

  1. 您没有权限
  2. 您正在访问的API在内容脚本不可用时从内容脚本调用.

显然你有第二种情况.您需要将消息传递到后台页面并从那里处理操作.