我有一个关于Web应用程序的想法,需要完全控制嵌入式文本编辑器的功能,并且必须确保所有浏览器中文本编辑器的功能完全相同。标准的
contenteditable
功能对我的需求不够。因此,我一直在尝试各种方法来实现自定义文本编辑器。我的第一个方法是检测鼠标点击以插入插入符号(虽然没有可见的插入符号,因为似乎没有办法实现这一点)。这种方法效果很好,但不幸的是无法显示插入符号(也称为闪烁的I形光标)。这意味着我的闪烁插入符号也必须是自定义的。我只能想到两种能够跨所有浏览器兼容的好方法:- 第一种(也许更好的)选择是使用JavaScript实现自定义布局引擎,就像Google Docs一样。
- 第二个解决方案(可能更容易)是将每个字符封装在自己的
<span>
元素中,从而允许虚假插入符号放置在特定的字符之间。这确实意味着会有大量的元素,但这肯定可以实现我需要的功能并利用浏览器布局引擎。这种方法的另一个好处是我不需要依赖于危险的特定于浏览器的文本选择技巧。