• ベストアンサー

firefoxでのフォーカス位置の取得

IEでは、document.activeElement.idやdocument.activeElement.valueで現在フォーカスがあるオブジェクトのIDやvalue値を取得できるようですがfirefoxではできませんでした。 firefoxで、IEと同じように現在フォーカスのあるオブジェクトのIDやvalue値を取得するにはどうしたらいいのか分かりません。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • Chaire
  • ベストアンサー率60% (79/130)
回答No.3

if ('undefined' !== typeof document.addEventListener && 'undefined' === typeof document.activeElement) document.addEventListener('focus', function (e) { e.currentTarget.activeElement = e.target; }, true); これで Firefox 3.0 以下でも activeElement を使えます。ポイントは addEventListener の最後の true です。

shaka001
質問者

お礼

回答ありがとうございました。 ソースを理解するのに時間がかかってしまい、お礼が遅くなっていしまいました。

その他の回答 (3)

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.4

余計な話かもしれないですが#2さんの.textContent はIEでは無効のようです。 innerHTMLなのかなぁとも思いますが、せっかくなので <form name="abc" action="#"> <p> <input type="text" name="abc"> <input type="text" name="def"> </p> </form> <div id="res">&nbsp;</div> <script> setInterval( function () { var element = Object; try{element=document.activeElement;}catch(e){element= window.getSelection().focusNode;} var r=document.getElementById('res'); while (r.firstChild) r.removeChild(r.firstChild); r.appendChild( document.createTextNode( "現在選択されている要素の名前は" + element.name + "です。" + "値は、" + element.value)); }, 2000); </script>

shaka001
質問者

お礼

回答ありがとうございます。 勉強になりました。

回答No.2

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"> <title>test1</title> <body> <form name="abc" action="#"> <p> <input type="text" name="abc"> <input type="text" name="def"> </p> </form> <div id="res">&nbsp;</div> <script type="text/javascript"> setInterval( function () { var element = (document.activeElement || window.getSelection().focusNode); document.getElementById('res').textContent = "現在選択されている要素の名前は" + element.name + "です。" + "値は、" + element.value; }, 2000); </script> ひろえてるけどなぁ~。ようそにふぉーかすを!

shaka001
質問者

お礼

すみません、拾えてました。 自分が思っていたところと違うところのフォーカスを拾っていて、そのせいで処理が動かず、処理が動かないということは拾えていないと思い込んでいました。 お手数おかけしました。

回答No.1
shaka001
質問者

お礼

回答ありがとうございます。 そのサイトはしっていたのですが、window.getSelection().focusNodeで取得したものからIDやvalue値を取得するのが分からなかったのです。単純に、window.getSelection().focusNode.idにしてみたりしたのですがうまくいきませんでした。

関連するQ&A