- ベストアンサー
firefoxでのフォーカス位置の取得
IEでは、document.activeElement.idやdocument.activeElement.valueで現在フォーカスがあるオブジェクトのIDやvalue値を取得できるようですがfirefoxではできませんでした。 firefoxで、IEと同じように現在フォーカスのあるオブジェクトのIDやvalue値を取得するにはどうしたらいいのか分かりません。 よろしくお願いします。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
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 です。
その他の回答 (3)
- yambejp
- ベストアンサー率51% (3827/7415)
余計な話かもしれないですが#2さんの.textContent はIEでは無効のようです。 innerHTMLなのかなぁとも思いますが、せっかくなので <form name="abc" action="#"> <p> <input type="text" name="abc"> <input type="text" name="def"> </p> </form> <div id="res"> </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>
お礼
回答ありがとうございます。 勉強になりました。
- babu_baboo
- ベストアンサー率51% (268/525)
<!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"> </div> <script type="text/javascript"> setInterval( function () { var element = (document.activeElement || window.getSelection().focusNode); document.getElementById('res').textContent = "現在選択されている要素の名前は" + element.name + "です。" + "値は、" + element.value; }, 2000); </script> ひろえてるけどなぁ~。ようそにふぉーかすを!
お礼
すみません、拾えてました。 自分が思っていたところと違うところのフォーカスを拾っていて、そのせいで処理が動かず、処理が動かないということは拾えていないと思い込んでいました。 お手数おかけしました。
- babu_baboo
- ベストアンサー率51% (268/525)
http://www.google.co.jp/search?complete=1&hl=ja&source=hp&q=document.activeelement+firefox&lr=&aq=0&oq=document.activeElement http://d.hatena.ne.jp/sawat/20070807/1186494686 かんたんにみつかるのだけれど
お礼
回答ありがとうございます。 そのサイトはしっていたのですが、window.getSelection().focusNodeで取得したものからIDやvalue値を取得するのが分からなかったのです。単純に、window.getSelection().focusNode.idにしてみたりしたのですがうまくいきませんでした。
お礼
回答ありがとうございました。 ソースを理解するのに時間がかかってしまい、お礼が遅くなっていしまいました。