我有一个输入框:input type =“text”class =“rulerInputText”id =“rulerInputBox”readonly
我有Javascript代码来检测所选文本并使用它。
当我允许用户实际选择文本时,会出现问题。文本是基本的空格。当用户开始选择时,没有问题,但是当到达空间时,用户选择它并且自动选择下一个单词。基本上,我想阻止自动选择整个单词。我只想准确选择用户希望用鼠标选择的内容。
这是可能的还是我需要使用某种疯狂的Javascript黑客来完成这项工作?
答案 0 :(得分:0)
这是操作系统的一项功能。操作系统提供的文本框可以自动选择更好的user experience
。您不对此有任何控制权。
(我刚刚在IE / Windows7上确认)
答案 1 :(得分:0)
这是IE的一个特色;没有其他浏览器有此行为。这是从Office复制的有意识的“智能选择”(*)功能,但在较新版本的Office中,它的工作效果不那么令人烦恼,如果您将指针移回原位,则可以恢复字符选择。
据我所知,无论是在客户端还是服务器端,都无法在IE中关闭它,因为微软认为它是一个非常棒的功能。叹。即使是JavaScript黑客攻击也无法提供方法。
关于你所能做的就是在每个角色之间放置不可见的空格,以便IE认为每个角色都是第二个单词。例如。尝试选择:
foo bar bof zot
这些字母之间有Unicode U + 200B ZERO WIDTH SPACE字符。这有副作用;如果用户试图编辑或复制并粘贴文本,他们会得到奇怪的隐形字符,可能会弄乱它。
(*:像往常一样,“智能”意味着对用户进行二次猜测,通常是错误的,并且坚持认为是正确的。也就是说“愚蠢”。从描述自己的任何东西开始跑一英里。)