Jul*_*lio 3 html javascript textarea canvas ace-editor
我正在寻找有关如何使用类似于文本区域的画布元素的直接描述。
我见过诸如Ace之类的项目。只是想知道如何像文本区域一样写入该区域。只是纯文本,没有什么花哨的。
提前致谢。
Ace 曾经是 Mozilla Skywriter,又曾经是 Mozilla Bespin。
如果您愿意深入研究 Bespin 的代码并基于它创建自己的代码,那么 Bespin 的代码实际上很容易理解,但这有点像傻瓜的任务。Canvas 规范实际上特别建议不要这样做:
作者应避免使用 canvas 元素实现文本编辑控件。这样做有很多缺点:
必须重新实现插入符号的鼠标放置。
必须重新实现插入符号的键盘移动(可能跨行,用于多行文本输入)。
必须实现文本字段的滚动(水平滚动用于长行,垂直滚动用于多行输入)。
必须重新实现复制粘贴等本机功能。
必须重新实现拼写检查等本机功能。
必须重新实现拖放等本机功能。
必须重新实现页面范围文本搜索等本机功能。
必须重新实现特定于用户的本机功能,例如自定义文本服务。这几乎是不可能的,因为每个用户可能安装了不同的服务,并且存在无限的可能的此类服务。
必须重新实现双向文本编辑。
对于多行文本编辑,必须为所有相关语言实现换行。
必须重新实现文本选择。
必须重新实现双向文本选择的拖动。
必须重新实现平台本机键盘快捷键。
必须重新实现平台本机输入法编辑器 (IME)。
撤消和重做功能必须重新实现。
必须重新实现辅助功能,例如插入符号或选择后的放大功能。这是一项巨大的工作量,强烈建议作者避免使用 input 元素、textarea 元素或 contenteditable 属性来避免执行任何操作。