アプリ版:「スタンプのみでお礼する」機能のリリースについて

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

よろしくお願いします。

A 回答 (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 です。
    • good
    • 0
この回答へのお礼

回答ありがとうございました。

ソースを理解するのに時間がかかってしまい、お礼が遅くなっていしまいました。

お礼日時:2009/11/19 13:06

余計な話かもしれないですが#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>
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

勉強になりました。

お礼日時:2009/11/19 13:10

<!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>
ひろえてるけどなぁ~。ようそにふぉーかすを!
    • good
    • 0
この回答へのお礼

すみません、拾えてました。

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

お礼日時:2009/11/19 09:14
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

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

お礼日時:2009/11/18 20:13

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!