日期:2014-05-16  浏览次数:20528 次

chrome浏览器选择文本问题

<!DOCTYPE HTML>
<html>
<head>
<title>
test
</title>
<meta charset="utf-8" />
</head>
<body>
<div id="test">
abc
<span>
de
</span>
</div>
<script type="text/javascript">
void function(){
document.getElementById("test").addEventListener("click", test, false);
}();
function test(e){
var node = e.currentTarget.childNodes[1];
var range = document.createRange();
range.selectNode(node);
window.getSelection().addRange(range);
}
</script>
</body>
</html>

以上代码在firefox里能正常运行,不管点文本哪里都能选中“de”,可是在chrome里却只有点“e”才能选中“de”,求解
------解决方案--------------------
window.onload = function(){
document.getElementById("test").addEventListener("click", test, false);
};
function test(e){
var node = this.childNodes[1];
sel = window.getSelection();
range = document.createRange();
range.selectNodeContents(node);
sel.removeAllRanges();
sel.addRange(range);
}