【发布时间】:2013-07-02 04:33:51
【问题描述】:
我正在用 javascript 构建一个自定义输入字段。 (即不使用内容可编辑、输入、文本区域或 iframe)。
我需要它来支持 textarea 字段中的基本选项,例如:
- 鼠标点击光标位置
- 选择
- 复制/粘贴
...
此时我正在侦听底层输入字段上的按键。
当一个键被按下时:
1.键String.fromCharCode(event.keyCode)的值被传递给一个tmp span。
2. 测量跨度的宽度,并存储在一个数组中。
3. 插入符号的位置是使用大小数组计算的
这在 chrome 中或多或少有效,但在使用 internet explorer 9 时,插入符号似乎偏离了位置。
似乎是单个容器的容器宽度,与该字符插入字符串时的宽度不匹配。
我猜这与步骤 2 中字母大小的计算方式有关。但我不太清楚如何解决这个问题。
有没有人有这个问题的经验,或者用一些文献、博客 API 等为我指明正确的方向? - 那太好了!
编辑: Here is a link to what i've got so far;
注意:在 chrome 中工作,并且在 ie: 9 和 10 中有提到的缺陷 它在Firefox中坏了:)
【问题讨论】:
-
您确定除了计算插入符号的位置之外没有其他方法可以放置插入符号吗?你为什么不写一些代码?例如,您的 DOM 看起来如何?
-
一些脏代码的链接已附加到原始帖子中。'您还建议使用哪些其他方式来定位插入符号
标签: javascript cross-browser layout-engine