Javascript 如何在chrome或firefox中获取网页上的图像数据或图像缓存路径?
我正在做一个插件(插件)上传任何页面上的图像。 我只能获取图像的url,但我想获取图像数据或图像的本地缓存Javascript 如何在chrome或firefox中获取网页上的图像数据或图像缓存路径?,javascript,google-chrome-extension,firefox-addon,Javascript,Google Chrome Extension,Firefox Addon,我正在做一个插件(插件)上传任何页面上的图像。 我只能获取图像的url,但我想获取图像数据或图像的本地缓存 通过chrome或firefox上的javascript。我通过canvas在扩展中实现了这一点 我创建了两个函数。首先使用“toDataURL()”方法从画布获取图像数据(将当前画布的内容作为图像返回,您可以将其用作另一画布或HTML元素(如img)的源),然后使用此数据获取BLOB对象 function getImageDataURL(url) { var data, canvas,
通过chrome或firefox上的javascript。我通过canvas在扩展中实现了这一点 我创建了两个函数。首先使用“toDataURL()”方法从画布获取图像数据(将当前画布的内容作为图像返回,您可以将其用作另一画布或HTML元素(如img)的源),然后使用此数据获取BLOB对象
function getImageDataURL(url) {
var data, canvas, ctx, blob;
var img = new Image();
img.onload = function() {
canvas = document.createElement("canvas");
canvas.width = img.width;
canvas.height = img.height;
ctx = canvas.getContext("2d");
ctx.drawImage(img, 0, 0);
try {
data = canvas.toDataURL();
blob = dataURIToBlob(data);
} catch(e) {
// Handle errors here
alert(e);
}
};
img.src = url;
};
function dataURIToBlob (dataURI) {
var byteString = atob(dataURI.split(',')[1]);
var mimeString = dataURI.split(',')[0].split(':')[1].split(';')[0];
var ab = [];
for (var i = 0; i < byteString.length; i++)
ab.push(byteString.charCodeAt(i));
return new Blob([new Uint8Array(ab)], { type: mimeString });
};
函数getImageDataURL(url){
var数据、画布、ctx、blob;
var img=新图像();
img.onload=函数(){
canvas=document.createElement(“canvas”);
canvas.width=img.width;
canvas.height=img.height;
ctx=canvas.getContext(“2d”);
ctx.drawImage(img,0,0);
试一试{
data=canvas.toDataURL();
blob=dataURIToBlob(数据);
}捕获(e){
//在这里处理错误
警报(e);
}
};
img.src=url;
};
函数dataURIToBlob(dataURI){
var byteString=atob(dataURI.split(',')[1]);
var mimeString=dataURI.split(',')[0]。split(':')[1]。split(';')[0];
var ab=[];
for(var i=0;i在“blob”变量中,我们有一个包含完整图像数据的blob对象。令人惊讶的答案。我们不得不放弃,因为我们没有回来看这个。