我有HTML输入字段,数字文本有一个点,即“1.00.1”。如果我在IE或Firefox中双击此字段,浏览器只选择文本的一部分(在点之间),但在Chrome中双击选择此字段中的整个文本。 在Chrome中更改此行为的最佳方法是什么?如果我在输入字段中只有文本(即“test.test”),则双击Chrome中的选择与IE和Firefox的工作方式相同。
答案 0 :(得分:1)
应该可能但很复杂。首先,你必须在点击时检测光标位置(首先点击dblclick),存储它并在dblclick中使用它(第二次点击): Get cursor position (in characters) within a text Input field 这里你的问题是不会触发dblclick上的点击,因为它会改变错误的光标位置(将光标位置重置为0)。我试过了,但这很难管理: http://jsfiddle.net/n2rzyxvg/3/
jQuery(document).on('click',"#input",function(){
var clickpos = jQuery(this).getCursorPosition() ;
jQuery(this).data('clickpos',clickpos) ;
console.log("Click ! " + clickpos) ;
});
jQuery(document).on('dblclick',"#input",function(){
console.log("DblClick ! " + jQuery(this).data('clickpos')) ;
});
有一种方法,但它不是完美的(不尊重dblclick的操作系统行为,它设置自定义超时来模仿dblclick): Jquery bind double click and single click separately 如果你可以设法在dblclick上获得光标位置,那么你只需找到你希望jQuery开始/停止你的选择的第一个和最后一个字符位置: Selecting Part of String inside an Input Box with jQuery
我无法帮助你,但这里的难点是dblclick触发点击,第二部分应该更容易。
希望这可以提供帮助 HF