我想知道是否可以编写浏览器扩展或简单的 Java 脚本代码,其中包含指向不同位置的 URL 列表,可以将所有内容压缩在一起。
我是说...
例如...有 3 个不同的图像文件:
-
http://example1.com/a.png http://example1.com/a.png
- http://example22.com/b.png http://example22.com/b.png
- http://example333.com/c.png http://example333.com/c.png
是否可以通过 Java 脚本代码将它们全部下载为压缩文件 archive images.ziphttp://mysite.com http://mysite.com ?
我已经发现JSZip http://stuartk.com/jszip/,但是我不知道如何使用它从不同服务器加载文件。
看看这段代码:我已经组装了一个Demo http://jsfiddle.net/q5asM/14/让您从那里开始。向下滚动到代码的最后几行。
首先我们需要将图像加载到<img>
标签。然后我们将阅读它们的内容。那么一切都可以通过 jszip 完成。
但也有局限性。您无法从其他域加载图像。因此图像应该位于相同的 url 中,或者您可以通过服务器端动态加载它们,例如:http://yourdomain.com/fileLoader.php?url=Url_To_External_Image
这是发挥神奇作用的代码 snipee:
function getBase64Image(imgage) {
var canvas = document.createElement("canvas");
canvas.width = imgage.width;
canvas.height = imgage.height;
var ctx = canvas.getContext("2d");
ctx.drawImage(imgage, 0, 0);
var dataURL = canvas.toDataURL("image/png");
return dataURL.replace(/^data:image\/(png|jpg);base64,/, "");
}
var img = $("<img />").attr('src', '../../../img/logo.png');
img.load(function() {
if (!this.complete || typeof this.naturalWidth == "undefined" || this.naturalWidth == 0) {
alert('broken image!');
}
else {
var zip = new JSZip();
content = getBase64Image(img[0]);
zip.file("24.jpg", content + "\n");
var content = zip.generate();
location.href="data:application/zip;base64,"+content;
}
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)