過去ログ表示


過去ログ 141 を表示

トピック内全 3 記事中の 1 〜 3 番目を表示
[ 最新記事及び返信フォームをトピックトップへ ]
このトピックの全ページ / [0]

(環境: WinXP SP2/Firefox1.0.4)

はじめまして、現在、FireFox 1.0.4 上で動作する Web アプリケーションを開発中の者です。

さて、現在開発中の Web アプリケーションなのですが、クライアント側JavaScriptを使用して、ある INPUT 要素の onblur イベントハンドラにて、次にフォーカスを得る要素がいずれであるか、知る必要が出てきました。

IE6やOpera7では、document.activeElement で知ることが出来るのですが、Firefox だとどのような手段を講じれば、上記目的を達成できるでしょうか。

過去ログを「フォーカス」で検索したり、FireFoxのDOMインスペクタで散策してみたりしましたが、思うような解決策がみつからず、本フォーラムに質問を投稿させて頂くことと致しました。

onfocusイベントをキャプチャしておいて、フォーカスを得ている要素をキャッシュしておくことも考えましたが、onblur イベントが先に発行されてからonfocusイベントが発行されるので、onblurイベントハンドラ内では、まだそのイベントを発行した要素自身がフォーカスを持っているものと判断されてしまい、これでは上手くいきません。

onblur をあきらめて、すべて onfocus イベントだけでやりくりすればこれは上手くいくと思うのですが(onblurイベントではそのイベントを発行した要素をキャッシュするだけにして、onfocus でそのキャッシュした要素を参照すれば、フォーカスを失った要素/得た要素の両方がわかる)、既存の JavaScript のライブリとの兼ね合いで、この手段は最後の選択肢としたい考えです。

もしほかによい方法があれば、ご教示頂きたく宜しくお願い致します。

(環境: WinXP SP2/Firefox1.0)

2005/07/06(Wed) 10:31:29 編集(投稿者)

職業 Java プログラマであるものの日曜 JavaScript プログラマですらない者です。

> onfocusイベントをキャプチャしておいて、フォーカスを得ている要素をキャッシュしておくことも考えましたが、onblur イベントが先に発行されてからonfocusイベントが発行されるので、onblurイベントハンドラ内では、まだそのイベントを発行した要素自身がフォーカスを持っているものと判断されてしまい、これでは上手くいきません。

私が少し考えただけでは、結局はここに行き着きました。

問題はオブジェクトを同定できるか、つまり、onblur イベントハンドラ内でイベントを受けたオブジェクトとキャッシュされたオブジェクトが同一であると判定できないのはなぜか、だと考えます。同一であると判定できればフォーカスを失ったと認識できるはずですから。

オブジェクトの同定は言語の中核機能ですから、後は JavaScript (ECMAScript) のコアの機能を使いこなしているのかだと想像します。私はそこまで JavaScript を使いこなしていませんが、オブジェクト指向言語でオブジェクトが同定できないならばかなりの非難を浴びていると思いますので。

わき道にそれると Java の場合はオブジェクト同士の == は参照が同一であるかどうかで Object.equals(Object) は同値関係です。似たものが JavaScript にもあるものと想像するのですが。

(環境: WinXP SP2/Firefox1.0.4/Thunderbird1.0.2)

http://beau.g-com.ne.jp/15-1.html
はオライリーのJavascriptの本(犀の絵)に付属していたCDだったかwebにあると本に指示があったかのサンプルがローカルにあったのですが、マウスが動くにつれてあらゆるイベントハンドラーを別ウィンドウに書き出しています.
Type : focus
Target : [Object Input]
Target name : textarea (これはname="textarea")
とonfocusのエレメントをとらえています.
なにぶん古いのでブラウザの分岐がうまくいっていないのかns4.78がちゃんと動きます.Firefoxはどこか手直しすれば良さそうですが同じ事を何度も書き出しています.
IE6、Opera8.01は何故か動きません.

内容よく見ていないので見当違いかもしれませんが参考になれば幸いです.


このトピックの全ページ / [0]

返信不可


- Child Tree -