我正在致力于Firefox的扩展,现在用JavaScript编写。本质上,当将鼠标悬停在图像的缩略图上时(点击该图像将您带到具有完整图像的网页),该扩展程序将查找完整图像的URL并尝试通过按键进行下载。 (在这个例子中是“D”)。我将使用的文件通常是.jpgs和.png,但是.swfs和.mp3s也可能存在。在这一点上,我只是想找到前两个文件类型的工作。通过Firefox使用Javascript下载图片?
我现在使用的代码只是
function ExtendedDownload(image_src) {
var a = document.createElement('a');
document.body.appendChild(a);
a.download = image_src.split('/').pop().split('?')[0];
a.href = image_src;
a.click();
}
- image_src是URL的形象。
- a.download是从完整URL解析的图像的文件名。
之前在JavaScript文件中,当它看到一个有效的缩略图被光标悬停时,它会等待按键。这部分工作得很好。下载是我遇到的麻烦。
当加载到镀铬,该扩建工程完全按预期。然而,在Firefox(v49.0.2)中,它只是显示图像(类似于在地址栏中粘贴图像的链接并按下Enter键)。这不是预期的效果。
我测试过的一个解决方案是通过JavaScript将图像转换为base64,并试图下载,这在理论上是有效的,而且我测试过它会将base64转换为小的.png ..但是我试图下载的文件导致base64字符串的大小超过兆字节,并且发送浏览器挂起,所以这不是一个有效的选项。
我在stackexchange上遇到的类似问题的每个解决方案都让我回到了这个位置,然而,“下载”图像只是在浏览器中打开它。
任何建议,将不胜感激。
编辑:我遇到的问题肯定是基于这样一个事实,即我使用此扩展的网页和图像所在的网页位于不同的域。 @Mayank Pandeyz的解决方案让我相信这一点,因为当我尝试在页面本身的相同域上进行重新加载和映像时,它就像预期的那样工作。我有什么潜力解决这样的问题?
听起来像是一个本地系统配置。也许你有像https://addons.mozilla.org/en-US/firefox/addon/open-in-browser/安装的东西? – Hailwood