我目前正在使用Crossrider编写扩展程序,我需要使用URL直接加载图像以对其进行一些图像处理。但是,onload
事件似乎根本没有触发。
我做错了什么,或者甚至可以在浏览器扩展程序中做到这一点?
以下是相关的代码:
var imga = document.createElement('img');
imga.src = obj.attr('href'); // URL of the image
imga.style.display = 'none';
imga.onload = function() {
alert('Image loaded');
var imgData = getImageData(imga, 0, imga.height - 3);
alert('Got Image data');
};
修改
这是完整的代码
function readImage(obj)
{
console.log('Reading');
relayReadImage(obj.attr('href'));
}
function relayReadImage(link)
{
var dateObj = new Date();
var newlink = link + "?t=" + dateObj.getTime();
console.log(newlink);
appAPI.request.get(
{
url: newlink,
onSuccess: function(response, additionalInfo) {
console.log(response);
},
onFailure: function(httpCode) {
alert('GET:: Request failed. HTTP Code: ' + httpCode);
}
});
}
答案 0 :(得分:2)
我是Crossrider的员工,很乐意为您提供帮助。如果我理解正确,您试图在页面的dom( obj.attr('href'))中使用对象的URL(href)将图像加载到扩展中的变量中。您可以使用 extension.js 文件中的跨浏览器appAPI.request.get方法实现此目的,如下所示:
appAPI.ready(function($) {
appAPI.request.get({
url: obj.attr('href'),
onSuccess: function(response) {
var imgData = response;
console.log(imgData);
}
});
});
但是,如果我误解了您的问题,请您澄清以下内容: