Javascript 使用“创建自定义基于web的文本编辑器”;span";元素-一个坏主意?
我有一个web应用程序的想法,我需要完全控制嵌入式文本编辑器的功能,并且文本编辑器在所有浏览器中的功能必须完全相同。此时,标准的Javascript 使用“创建自定义基于web的文本编辑器”;span";元素-一个坏主意?,javascript,html,performance,wysiwyg,Javascript,Html,Performance,Wysiwyg,我有一个web应用程序的想法,我需要完全控制嵌入式文本编辑器的功能,并且文本编辑器在所有浏览器中的功能必须完全相同。此时,标准的contenteditable功能不足以满足我的需要 因此,我一直在尝试各种方法来实现自定义文本编辑器。我的第一个方法是检测插入插入插入符号的鼠标点击(尽管没有可见插入符号,因为似乎没有实现这一点的方法)。这工作得相当好,但不幸的是,没有办法显示插入符号(又名闪烁的I形光束) 这意味着我的闪烁插入符号也必须是定制的。我只能想出两个好方法来实现这一点,这两种方法将兼容所有
contenteditable
功能不足以满足我的需要
因此,我一直在尝试各种方法来实现自定义文本编辑器。我的第一个方法是检测插入插入插入符号的鼠标点击(尽管没有可见插入符号,因为似乎没有实现这一点的方法)。这工作得相当好,但不幸的是,没有办法显示插入符号(又名闪烁的I形光束)
这意味着我的闪烁插入符号也必须是定制的。我只能想出两个好方法来实现这一点,这两种方法将兼容所有浏览器
元素中,从而允许在特定字符之间放置人造插入符号。这确实意味着将有很多跨元素,但这肯定会实现我所需要的,同时利用浏览器布局引擎。这种方法的另一个好处是,我不需要依赖于狡猾的特定于浏览器的文本选择技巧那么我的问题是,选项2真的是个坏主意吗?如果是,为什么?首先,您真的需要使用自己的编辑器吗?还有一些非常酷的协作编辑,也许还有更多的开源编辑器不基于
contenteditable
。创建这样的编辑器真的很难,所以在上面浪费时间是没有意义的
但是,如果您真的想开发自己的解决方案,并且需要在所有浏览器上都有完全相同的行为,那么您就注定要失败。即使你要避免contenteditable
也肯定会有其他事情出错
无论如何,答案是: