Firefox WebExtension API "downloads" 不工作
Firefox WebExtension API "downloads" not working
我想创建自己的扩展程序,它会自动从某些网站下载文件并将其保存在默认的下载文件夹中。我从在页面周围创建红色边框的 "your first extension" 示例开始。这有效!
然后我尝试使用 this example,它解释了下载功能,从 google 服务器下载图像,但它不起作用。我还在 manifest.json 中添加了 "downloads" API 的权限,但它没有帮助。代码中断,browser.downloads.download
之后的所有内容都不会执行。
我也尝试了 console.log(browser);
和 console.log(browser.downloads);
。 browser
对象已定义,但 browser.downloads
未定义。
代码如下:
manifest.json:
{
"manifest_version": 2,
"name": "Permission Test",
"version": "1.0",
"description": "Downloads an image",
"applications": {
"gecko": {
"id": "permission@example.com"
}
},
"icons": {
"48": "icons/border-48.png"
},
"permissions": [
"activeTab",
"downloads"
],
"content_scripts": [
{
"matches": ["*://www.google.de/logos/doodles/2018/*"],
"js": ["script.js"]
}
]
}
script.js:
document.body.style.border = "10px solid red";
console.log('Extension started.');
function onStartedDownload(id) {
console.log('Started downloading: ${id}');
}
function onFailed(error) {
console.log('Download failed: ${error}');
}
var downloadUrl = "https://www.google.de/logos/doodles/2018/virginia-woolfs-136th-birthday-5857012284915712.6-l.png";
console.log(browser.downloads);
var downloading = browser.downloads.download({
url: downloadUrl
//filename: 'my-image-again.gif',
conflictAction: 'uniquify'
});
downloading.then(onStartedDownload, onFailed);
console.log('Extension execution finished.');
我正在使用 Firefox 58 和 Windows 7.
downloads
API 在内容脚本中不可用,您可能想将该代码移动到后台页面。我将从阅读此页面开始,以熟悉 WebExtensions 的整体结构:
https://developer.mozilla.org/en-US/Add-ons/WebExtensions/Anatomy_of_a_WebExtension
我想创建自己的扩展程序,它会自动从某些网站下载文件并将其保存在默认的下载文件夹中。我从在页面周围创建红色边框的 "your first extension" 示例开始。这有效!
然后我尝试使用 this example,它解释了下载功能,从 google 服务器下载图像,但它不起作用。我还在 manifest.json 中添加了 "downloads" API 的权限,但它没有帮助。代码中断,browser.downloads.download
之后的所有内容都不会执行。
我也尝试了 console.log(browser);
和 console.log(browser.downloads);
。 browser
对象已定义,但 browser.downloads
未定义。
代码如下:
manifest.json:
{
"manifest_version": 2,
"name": "Permission Test",
"version": "1.0",
"description": "Downloads an image",
"applications": {
"gecko": {
"id": "permission@example.com"
}
},
"icons": {
"48": "icons/border-48.png"
},
"permissions": [
"activeTab",
"downloads"
],
"content_scripts": [
{
"matches": ["*://www.google.de/logos/doodles/2018/*"],
"js": ["script.js"]
}
]
}
script.js:
document.body.style.border = "10px solid red";
console.log('Extension started.');
function onStartedDownload(id) {
console.log('Started downloading: ${id}');
}
function onFailed(error) {
console.log('Download failed: ${error}');
}
var downloadUrl = "https://www.google.de/logos/doodles/2018/virginia-woolfs-136th-birthday-5857012284915712.6-l.png";
console.log(browser.downloads);
var downloading = browser.downloads.download({
url: downloadUrl
//filename: 'my-image-again.gif',
conflictAction: 'uniquify'
});
downloading.then(onStartedDownload, onFailed);
console.log('Extension execution finished.');
我正在使用 Firefox 58 和 Windows 7.
downloads
API 在内容脚本中不可用,您可能想将该代码移动到后台页面。我将从阅读此页面开始,以熟悉 WebExtensions 的整体结构:
https://developer.mozilla.org/en-US/Add-ons/WebExtensions/Anatomy_of_a_WebExtension