1

Firefox SDK を使用しています。

次のコードは機能するため、少なくともすべてが想定どおりに機能していることはわかっています。

document.getElementById("mydiv").src="http://somesite/externalimage.jpg";

しかし、外部の画像にリンクしているため、Mozilla は私の拡張機能のこのバージョンを承認していません。

したがって、拡張機能内の画像にリンクする必要があります (同じ画像を拡張機能内にアップロードしました)。

次のコードを試しましたが、うまくいきませんでした。

document.getElementById("mydiv").src=" + data.url("externalimage.jpg") + ";

では、拡張機能内の画像にリンクするにはどうすればよいでしょうか?

4

2 に答える 2

1

まず、構文が間違っているため、エラーが発生します。そのはず:

document.getElementById("mydiv").src = data.url("externalimage.jpg");

自分自身からデータモジュールを含めていますか?

var data = require('sdk/self').data;

これはどのような文脈ですか?メインの SDK コードは data.url 関数にアクセスできますが、これがコンテンツ スクリプト内にある場合、そこにはありません。メッセージとともに値を渡す必要があります。

main.js で

// Assuming a pagemod here, but can be any worker
var data = require('sdk/self').data;
var { PageMod } = require('sdk/page-mod');
PageMod({
  include: '*',
  contentScriptFile: data.url('script.js'),
  onAttach: function (worker) {
    worker.port.emit('link', data.url('externalimage.png');
  }
});

コンテンツ スクリプト script.js 内:

self.port.on('link', function (url) {
  document.getElementById("mydiv").src = url;
});
于 2013-08-10T02:37:32.850 に答える
0

相対 URL を使用するだけです。html ファイルと画像ファイルの両方が/data/フォルダーにある場合。次に、以下が機能するはずです。

document.getElementById("mydiv").src="some-image.jpg"
于 2013-08-11T18:13:06.340 に答える