我尝试使用window.getSelection()在聚焦了一个可知的div时返回节点。
HTML:
<div id="testing" contenteditable="true">
<p>Click on me while monitoring the console</p>
</div>
jQuery的:
$('#testing').focus(function() {
console.log(window.getSelection());
});
请在此处查看JSFiddle:http://jsfiddle.net/yftf24g6/
监控控制台,我在Firefox中选择文本节点但不在Chrome中选择(选择{类型:&#34;无&#34;})
任何人都可以解释原因吗?
答案 0 :(得分:1)
在chrome中(如我所见)在完成选择之前单击可编辑元素时会立即触发focus
事件。添加setTimeout
解决了这个问题,但这是一个不可靠的黑客攻击。
我建议你使用mouseup
事件,
当鼠标指针悬停在元素上并且鼠标按钮被释放时, mouseup 事件将被发送到元素。任何HTML元素都可以接收此事件。
$('#testing').mouseup(function() {
console.log(window.getSelection().toString());
});
在Firefox(37.0.2)和Chrome(42.0.2311)中测试。
<强> Updated Fiddle 强>