插入符号在firefox和IE上的位置不同
different caret position on firefox and IE
要重新创建该问题,请访问http://jsfiddle.net/BsJ6V/并在开始正文标记后键入任何字符(例如,如果键入h字符,则为<body>h
)。
一个警告框将显示插入符号的位置。当你在Firefox中运行它时,插入符号的位置是56,当你在IE中运行它时,它是60。请问出了什么事?
编辑::更新链接。
区别在于IE将文本区域内的每个换行符计算为两个字符(CRLF或'r'n
),而Firefox将其计算为单个LF ('n
)字符。
如果有前导换行符,您的函数将无法在IE中获得正确的插入符号位置。要查看这一点,请在第一个jsFiddle示例的文本区域的开头放置插入符号,按几次return并尝试键入其中一个空行。要解决这个问题,您可以使用我之前在Stack Overflow上发布的函数,或者如果您喜欢jQuery插件,我已经创建了一个用于处理文本区域选择的函数:http://code.google.com/p/rangyinputs/
请注意,jQuery的val()
方法规范化了浏览器之间换行的差异(在我看来,这是没有帮助的,因为发送到服务器的值没有规范化),因此换行总是'n
。我的插件和你的函数都返回一个相对于textarea的原始值属性的插入符号位置,而不是jQuery的规范化值,所以如果你使用插入符号位置来操作值,你需要使用$textarea[0].value
而不是$textarea.val()
。
你可以看到这里的区别:http://jsfiddle.net/MyR7J/2/
相关文章:
- 修正了在Bootstrap Modal中IE 10与Chrome和Firefox的不同位置
- Javascript改变位置赢得'不适用于Chrome或IE
- 谷歌地图标记IE中的位置不正确,在chrome上工作正常
- 如果在 IE 中最后附加光标,则在光标位置的文本区域中插入文本
- 精灵图像的背景位置在 IE 中不起作用,用于倒计时时钟
- getElementsByTagName 为空或未定义,仅在 IE 中 - 并且仅在函数中的一个特定位置
- FF 13,IE 9:JSON 字符串化/地理位置对象
- 为什么从位置哈希中选择下拉列表在 Chrome 上有效,但不适用于 Firefox、IE 或 Safari
- 提高准确性 IE 11 地理位置
- Firefox 中的 HTML 位置问题(适用于 IE 和 Chrome)
- 导出按钮位置更改 IE 11 中的高图表
- IE中的鼠标位置
- Raphael JS:IE中缩放路径后的错误位置
- 元素问题在IE中的位置
- bookmarklet可以't在普通图像url上运行时在ie中的固定位置
- 动态创建Div's、 外部Div的孩子,在Chrome中的位置错误,但在IE中是正确的
- Javascript: "源代码在此位置不可用"使用IE调试时
- 在IE中获得插入符号位置在一种情况下工作,在另一种情况下不工作
- 改变文本区域onclick的值将插入符号置于一个奇怪的位置,但仅在IE中
- javascript FreeTextBox获得插入符号的位置(IE)