我有一个contenteditable DIV链接/同步回textarea。巩固堆叠DOM格式化元素 - contenteditable DIV
contenteditable DIV是一个免费的所有沙箱,它将在被调用时创建格式化元素等。然而,这通常会导致凌乱的堆叠元素。
我希望能够在之前清理代码textarea表单被发送到服务器。
有可能喜欢的东西就结了以下内容:
<div>
<b>
<i>
Hel
</i>
<i>
l
</i>
</b>
<i>
<b>
o World!
</b>
</i>
</div>
这将理想转化为:通过DIV我的的childNodes
<div>
<b>
<i>
Hello World!
</i>
</b>
</div>
如果我走了(递归)可能大概跟踪的格式(tagName.toUpperCase() == {'B','I' ....})
//或做一个document.queryCommandState
期间,我可以在selectNode(thenode)
上做一个document.execCommand('removeFormat',false,null)
。
但是,我对如何跟踪相邻节点的格式有点遗憾。
作为参考这里是我最近做了DOM解析,除去从IMG标签格式:http://jsfiddle.net/tjzGg/
注:这是一个类似的问题>jquery - consolidate stacked DOM elements但它是关于巩固useCSS
风格行成一个主要的风格。这是一个不同的问题,原因是我期望用一种常见的风格来整合文本,但是由于文本的格式化,人为地分割了多个元素。如果你一次只有一个可以理解的div,并且每个单独的一个字符都是一个字符,那么每个元素最后只会有一个字符。
NB:溶液2从@ TIM-按下码在启发:http://stackoverflow.com/questions/6240139/highlight-text-range-使用javascript感谢提姆! – 2013-04-26 21:01:29