【发布时间】:2011-07-12 22:34:06
【问题描述】:
我正在尝试使用选择和范围对象编写基于 JavaScript 的标记编辑器 (WYSIWIG)。到目前为止,我没有任何问题可以访问这些对象。
我的问题从这里开始:
使用范围对象,我可以访问它的属性 startContainer/StartOffset 和 EndContainer/Endoffset。这意味着我会返回有关我的选择开始的节点的信息,包括内部位置和有关选择结束的相同信息。
据我了解,JavaScript 会自动添加开始或结束标记,以防我的选择破坏了现有的树结构。
如果我现在想添加一些标记,我该如何处理这些损坏的结构?
例子:
This <i>is my</i><b>sample</b> text.
现在我想在“我的样本”部分下划线
这意味着必须根据“我的样本”的选择来构建这样的东西:
This <i>is <u>my</u></i><b><u>sample</u></b> text.
但由于我没有注意到现有树结构的破坏,我该怎么做?如何确保有效标记?
我也在考虑处理整个字符串,但我不知道字母/文本的全局位置,只知道它们在某些节点中的位置。
我希望这个问题很清楚,我为它的一般形式道歉。但是我真的对这些东西很着迷......
【问题讨论】:
标签: javascript editor selection range markup