Mozilla xul オブジェクトの iframe についての質問です。(※htmlオブジェクトのiframeではない※)

iframeで読み込みが完了した際のイベントを捕捉したいのですが、うまくいきません。
xulの定義に、<iframe src="http://..." onload="alert('test')"/> と記述しても、alertが表示されませんし、javascript内で、イベントハンドラを以下のように追加してもうまく行きませんでした。
var iframe=document.getElementById("test");
iframe.addEventListener('load',
function(){
alert('test');
}, true)
xul の iframe では、何か特殊な方法がありますか?
ちなみに、そのiframeはfirefoxのサイドバー内に表示されており、上記のjavascript内の、documentは、サイドバーのcontentDocumentを保持しています。

回答の条件
  • 1人2回まで
  • 登録:
  • 終了:2008/12/03 13:10:43
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答2件)

id:mulloo No.1

回答回数151ベストアンサー獲得回数2

id:norisuke3

こういう的を得ないな回答にはポイントはあげられません。不適切な回答として処理します。

2008/12/02 06:02:30
id:language_and_engineering No.2

回答回数170ベストアンサー獲得回数63

ポイント70pt

こんにちは。


簡単にではありますが,回答のためにエントリーを書きました。

参考になさってください。

Firefoxのサイドバーを作ろう (XUL形式のアドオンでbrowser要素を設定する方法)

http://d.hatena.ne.jp/language_and_engineering/20081203/12282623...


onload="~"は動きませんでした。


かわりに,JavaScriptから

  1. onloadイベントをadd
  2. DOM操作で表示内容を切り替え

という手順を踏めば,onloadイベントが発生してくれました。


これならiframeの内容は自動で表示されるので,動作上は <iframe src="~" と書くのと変りないと思います。

id:norisuke3

わざわざブロッグエントリーまで書いていただいてありがとうございます。問題なく動くようになりました。

ブログ中の、「iframeでは div タグがうまく表示されないのでbrowserタグを使いましょう」という流れで気になった点が有ります。

ブロッグ中のサンプルによると、divタグを表示できていないのは、xulのiframeではなくて、htmlのiframeのようですね。なので、browserタグの方でも同じ構造で、browserの中にhtmlのiframeを表示して、その中にyahooを読み込むと、同じ問題が発生するかもしれないなと思いました。(確認はしていません。)

いずれにせよ、本当にありがとうございました。

2008/12/03 13:09:38

コメントはまだありません

この質問への反応(ブックマークコメント)

トラックバック

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません