chrome浏览器选择文本问题

Logical_butterfly 2014-03-13 04:15:31

<!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”,求解
...全文
308 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
Logical_butterfly 2014-03-14
  • 打赏
  • 举报
回复
引用 3 楼 danica7773 的回复:
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);
}
谢谢!
打字员 2014-03-14
  • 打赏
  • 举报
回复
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);
}
Logical_butterfly 2014-03-13
  • 打赏
  • 举报
回复
引用 1 楼 ShenShiampMoYi 的回复:
测试数据最好真实点 这样才能更好的测试 把de换掉把 再试试
我试过,也是只有点span里的才能选中,准确的说,是span里往后延半个字符开始才能选中,我实际情况是只选一个字符,这样只有点后半个字符才能选中,跟我设想的差距太大了
  • 打赏
  • 举报
回复
测试数据最好真实点 这样才能更好的测试 把de换掉把 再试试

87,902

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧