在firefox或chrome中获取<img/>二进制文件而不会发出新请求

时间:2016-03-04 07:23:20

标签: javascript google-chrome firefox google-chrome-extension firefox-addon

如何从firefox OR chrome(我可以使用)中加载已加载的<img>元素中的二进制文件,而不需要新的请求来获取图像的新副本? (正常的解决方案是new XMLHttpRequest来获取新副本)它不是性能的东西,我绝对不能再提出获取图像副本的请求,我必须从缓存加载它,没有警告原始网站。我可以使用JavaScript,npapi或其他任何东西,我不知道从哪里开始

1 个答案:

答案 0 :(得分:0)

您可以使用FileReader.readAsBinaryString()

这是FileReader版本,但toBlob方法有browser limitation

var canvas = document.createElement('canvas');
var height = 200;
var width  = 200;
canvas.width  = width;
canvas.height = height;
var ctx = canvas.getContext('2d');
var img = document.getElementById("img001");
ctx.drawImage(img, 0, 0);

canvas.toBlob(function (blob) {
  var reader = new FileReader();

  reader.onloadend = function () {
    console.log(reader.result);
  };

  reader.readAsBinaryString(blob);
}); 

demo