0

ここにHTMLコードがあります。「コンテナ」divのすべてのテキストを選択するはずです

<B onclick="SelectText(document.getElementById('Container'));">select all text</B>
<Div id="Container">
<Div>123456</Div>
<Div>123456</Div>
<Div onclick="SelectText();">123456</Div>
</Div>

ここに SelectText() 関数の JS コードがあります

function SelectText(target){
if(target==null){
var e = window.event || e;
if (!e) var e = window.event;
var target=e.target || e.srcElement;
}

var rng, sel;
if ( document.createRange ) {
rng = document.createRange();
rng.selectNode( target );
sel = window.getSelection();
sel.removeAllRanges();
sel.addRange( rng );
} else {
var rng = document.body.createTextRange();
rng.moveToElementText( target );
rng.select();
    }
}

問題は、Opera 12.02 で「すべてのテキストを選択」をクリックすると、すべてのテキストが選択されているように見えますが、選択されていません (右クリックしてコピーすることはできません)。

(素晴らしいですが、IEはそれでうまく動作します)

なぜオペラではないのですか?「コンテナ」内のすべてのテキストが選択されていると Opera 12.02 に認識させるにはどうすればよいですか?

4

1 に答える 1

1

そのコードは jsfiddle の 12.11 でうまく動作するので、最新の Opera バージョンを使用する必要があると思います。古いバージョンの Opera にはそのようなバグがあったことを覚えています。

于 2012-12-03T11:01:30.913 に答える