1

現在、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);
                }

                });
        }
4

1 に答える 1

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. 何を達成しようとしているのか、どのコンテキストで (拡張機能またはページ上で) ?
于 2013-05-06T19:55:04.743 に答える