IE9 で次の動作を作成したい:
テキストボックスをクリックすると、テキストボックスからテキストが選択されます。もう一度クリックすると、テキストの選択が解除されます。
このリンクから次のことを試しました: http://www.codingforums.com/showthread.php?t=105530
var x = 2;
function selectIt(obj)
{
if (x % 2 == 0)
{
obj.select();
}
else
{
if (document.selection)
{
document.selection.empty();
obj.blur();
}
else
{
window.getSelection().removeAllRanges();
}
}
obj.focus();
x++;
}
これも使用しました:http://jsfiddle.net/HmQxZ/1/
しかし、上記の解決策を複数のテキスト ボックスに適用すると、奇妙な動作が発生します。この種の問題にアプローチする最良の方法は何ですか。グローバル変数を使わずにこれを行うことは可能ですか?
アップデート:
フィドルは Chrome で動作します。ただし、IE9 では機能しません。IE9 では、テキストが選択されていますが、テキスト ボックスをもう一度クリックしても、テキストは選択解除または強調表示されません。Chrome では、2 回目のクリックでテキストの選択/強調表示が解除されます。
ありがとうございました。