问题
在Chrome/FFirefox中,即使字段失焦,用户的选择也会完美返回。在IE中,当字段失焦时,选择设置为0。
代码
我目前正在使用jQuery.calete((来确定用户选择,它使用以下代码:
if ( this[0].setSelectionRange ) {
begin = this[0].selectionStart;
end = this[0].selectionEnd;
} else if ( document.selection && document.selection.createRange ) {
var range = document.selection.createRange();
begin = 0 - range.duplicate().moveStart( 'character', -100000 );
end = begin + range.text.length;
}
return { begin: begin, end: end };
详细信息
我正在研究一个非常复杂的自动完成解决方案。使用键盘选择建议是可以的,因为文本输入永远不会失去焦点。然而,使用鼠标会模糊文本输入,然后重新聚焦
用户的选择和插入符号位置对于如何将建议填充到字段中非常重要。
讨论
我不想每次用户移动插入符号时都保存它的位置(向左、向右、向上、向下箭头、页面向上/向下、退格、鼠标事件点击等(,似乎应该有一个答案让我可以:
- 听一些事件,我可以在模糊发生之前保存插入符号(onBlur太晚了(
- 使用不同的方法来确定IE中的用户选择
再一次,这个问题只在IE中观察到。其他浏览器可以正确处理这个问题。
IE选择的工作方式有点不同。看看这个小提琴:http://jsfiddle.net/KC48j/11/