MSIE:单击外部时将焦点保持在文本字段中

时间:2011-03-25 11:46:07

标签: javascript internet-explorer events browser

我想在页面上点击某些内容时,可以在文本字段中的当前插入符号位置插入文本。

为了完成这项工作,焦点不应该在点击时留下文本字段,并且不应移动插入符号。

我可以在event.preventDefault()事件中使用mousedown来处理这个问题。

但在互联网浏览器中,我根本无法做到这一点。欢迎任何建议。

澄清:我正在尝试为用户提供一些好的方法来输入无法直接从键盘输入的异国字符。

我已经实现了ctrl + alt + p,它适用于所有浏览器,除了Internet Explorer,我无法停止按ALT的默认行为(激活菜单栏)。

然后我在字段旁边制作了一个“调色板”,可以在键入时用鼠标点击。这适用于所有浏览器,除了Internet Explorer,我无法阻止鼠标单击的默认模糊行为。

2 个答案:

答案 0 :(得分:1)

不要这样做

我建议你不要这样做,因为在文本字段中保留(或更好地说返回焦点)插入符号也会阻止用户更改浏览器的地址栏,这是你不想要的。

我建议你更详细地解释一下你的过程,也许我们可以建议一个更好的选择。

经过一些澄清

您应该做的是在插入位置插入文字/字符。即使焦点松散,inputtextarea也会保留插入位置。所以你应该做类似stackoverflow在这里做的事情。当您选择一些文本(键入问题/答案时),然后单击顶部的 B 图标时,会在所选文本周围添加两颗星。这是你应该如何进行特殊字符插入。当用户单击特定异形字符时,应在输入的插入位置添加/插入该字符。

有很多与解决这个问题相关的stackoverflow问题 - 在插入位置添加文本:

答案 1 :(得分:1)

也许这是一个死对话,但我有一个解决方案。

对于IE,请专门查看onbeforedeactivate事件。您需要将此附加到要保持焦点的元素。这有点棘手,因为如果你总是取消这个事件你永远不会把注意力放在这个元素上,但是如果你小心如何实现它你可以实现你想要的。

我已经做了一段时间了,现在效果很好。