― MozillaZine.jp フォーラムは Mozilla 製品に関する情報交換の場です ―



All times are UTC + 9 hours

返信する
ユーザー名:
件名:
オプション:
BBCode: ON
[img]: ON
[flash]: OFF
[url]: ON
スマイリー: ON
BBCode を無効にする
フォントサイズ:
フォントカラー
スマイリーを無効にする
URL を自動的にパースしない
ユーザエージェントを表示する
認証コード
KCaptcha by Nikita_Sp
   

トピックのレビュー - prefwindowのselectイベント
作成者 メッセージ
  記事の件名:  Re: prefwindowのselectイベント  引用付きで返信する
あ さんが書きました:
lastSelected プロパティが変化するのは「一連の処理」の結果ですから、prefwindow 側の「一連の処理」が終わった後ならば変化していますが、もしその前に自分の方が呼ばれてしまったら変化前です。

そうではなく、切り替わった結果を調べるのではなくて「prefwindow が切り替えようとする先はどこなのか」の取得であれば、切り替え処理の前でも後でも、同じものが取得できるはずです。
それを取得するのは、先に書いたリンク先にある
コード:
var pane = document.getElementById(event.originalTarget.getAttribute("pane"));
のところです。

すいません、中途半端に見て勘違いしていました。
あらためて試してみたところ、確かに選択した(しようとした?)paneを得ることができました。
あと最初eventのoriginalTargetというプロパティを知らなくてtargetばかり見ていましたが、originalTargetの方を参照するという点もポイントですかね。

ご指摘ありがとうございました。
投稿記事 Posted: 2008年9月14日(日) 13:49
  記事の件名:  Re: prefwindowのselectイベント  引用付きで返信する
ma2ten さんが書きました:
あ さんが書きました:
その一連の動作は command イベントで開始するようになっていますから、どのペインに切り替わるのかを取得するには、command イベントを捕らえれば良いでしょう。

なるほど、やはり切り替わる前でイベントが発生してたんですね。
prefwindowでのoncommandをちょっと試してみたところ、lastSelectedプロパティの値が選択したペインの値を指しているように見えました。
これで合ってるのかな?(^^;)

lastSelected プロパティが変化するのは「一連の処理」の結果ですから、prefwindow 側の「一連の処理」が終わった後ならば変化していますが、もしその前に自分の方が呼ばれてしまったら変化前です。

そうではなく、切り替わった結果を調べるのではなくて「prefwindow が切り替えようとする先はどこなのか」の取得であれば、切り替え処理の前でも後でも、同じものが取得できるはずです。
それを取得するのは、先に書いたリンク先にある
コード:
var pane = document.getElementById(event.originalTarget.getAttribute("pane"));
のところです。
投稿記事 Posted: 2008年9月14日(日) 01:17
  記事の件名:  Re: prefwindowのselectイベント  引用付きで返信する
あさん、Piroさん、情報ありがとうございます。

あ さんが書きました:
pane を切り替えるときには、その pane を選択したり、pane の selector を選択したり、prefwindow のプロパティを設定したり…といった一連の動作が行われますが、select イベントはその中の「pane を選択」とか「selector を選択」とかで発生するはずですから、「一連の動作」はまだ途中ですね。
つまり、select イベントが発生した時点では、「一連の動作」が完了していると思ってはいけないはずです。

その一連の動作は command イベントで開始するようになっていますから、どのペインに切り替わるのかを取得するには、command イベントを捕らえれば良いでしょう。
もし、そうではなくて「一連の動作」が完了したときを捕らえたいのであれば… そんなイベントがあるのかどうかは知りません。

なるほど、やはり切り替わる前でイベントが発生してたんですね。
prefwindowでのoncommandをちょっと試してみたところ、lastSelectedプロパティの値が選択したペインの値を指しているように見えました。
これで合ってるのかな?(^^;)


Piro さんが書きました:
ボタンのクリック→prefpaneの切り替え→必要に応じて、そのペインの内容のロード
まで終わった段階でpaneloadというイベントが発生しますので、それを使ってみてはどうでしょうか。
prefpane要素にonpaneloadイベントハンドラを書くだけでも利用できます。

paneloadというのはそのペインが最初にロードされた時だけに発生するイベントと解釈していました。
実際ちょっと試してみたところ、ウィンドウが開いた時に一度呼ばれて、その後はペインの切り替えをしても呼ばれないようでした。
投稿記事 Posted: 2008年9月11日(木) 18:35
  記事の件名:  Re: prefwindowのselectイベント  引用付きで返信する
ボタンのクリック→prefpaneの切り替え→必要に応じて、そのペインの内容のロード
まで終わった段階でpaneloadというイベントが発生しますので、それを使ってみてはどうでしょうか。
prefpane要素にonpaneloadイベントハンドラを書くだけでも利用できます。
投稿記事 Posted: 2008年9月11日(木) 12:52
  記事の件名:  Re: prefwindowのselectイベント  引用付きで返信する
ma2ten さんが書きました:
それともprefwindowでのselectイベントはこういう動作になってしまうのでしょうか。
pane を切り替えるときには、その pane を選択したり、pane の selector を選択したり、prefwindow のプロパティを設定したり…といった一連の動作が行われますが、select イベントはその中の「pane を選択」とか「selector を選択」とかで発生するはずですから、「一連の動作」はまだ途中ですね。
つまり、select イベントが発生した時点では、「一連の動作」が完了していると思ってはいけないはずです。

その一連の動作は command イベントで開始するようになっていますから、どのペインに切り替わるのかを取得するには、command イベントを捕らえれば良いでしょう。
もし、そうではなくて「一連の動作」が完了したときを捕らえたいのであれば… そんなイベントがあるのかどうかは知りません。
投稿記事 Posted: 2008年9月10日(水) 23:03
  記事の件名:  prefwindowのselectイベント  引用付きで返信する
拡張のオプションダイアログでprefwindowを使用しています。
prefpaneの内の1つが選択された時に処理を行うため、onselectで関数を呼ぶようにしようと思ったのですが、そこでprefwindowのcurrentPaneプロパティを確認すると、どうも現在選択中のペインではなく、前に選択されていたペインの値になっているようでした。
ちなみにそのid値とlastSelectedの値は同じ結果に見えます。
これはバグでしょうか?
それともprefwindowでのselectイベントはこういう動作になってしまうのでしょうか。
よろしくお願いします。
投稿記事 Posted: 2008年9月08日(月) 16:29

All times are UTC + 9 hours


ページ移動:  
Powered by MozillaZine.jp® Forum Software © phpBB Group , Almsamim WYSIWYG
Japanese translation principally by ocean