JS自动选择文本的Opera bug(如果超过1 div)

时间:2012-11-29 18:18:18

标签: javascript html select opera

这是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相信“容器”中的所有文字都被选中了?

1 个答案:

答案 0 :(得分:1)

这个代码在jsfiddle的12.11中对我来说很好,所以我想你只需要使用更新的Opera版本。我记得那些老版本的Opera有这样的bug。