JavaScript在Crossrider浏览器扩展中从URL加载图像

时间:2013-05-06 16:58:50

标签: javascript crossrider

我目前正在使用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);
                }

                });
        }

1 个答案:

答案 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);
        }
    });
});

但是,如果我误解了您的问题,请您澄清以下内容:

  1. 什么是 obj 对象?
  2. 您想要实现什么,以及在哪种情况下(在分机或页面上)?