这是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?!!! 我能做些什么才能让Opera 12.02相信“容器”中的所有文字都被选中了?
答案 0 :(得分:1)
这个代码在jsfiddle的12.11中对我来说很好,所以我想你只需要使用更新的Opera版本。我记得那些老版本的Opera有这样的bug。