【发布时间】:2013-01-18 00:46:44
【问题描述】:
我有以下问题。一旦我在contenteditable 中添加了blockquote,通过按Enter 键它会移动到新行并添加另一个blockquote 元素。它永远持续下去,我无法逃避格式化。所需的功能将是无序列表的功能。当您按 Enter 键时,它会添加一个新的空 <li> 元素,但如果您再次按 Enter,它会转义格式,删除之前创建的 <li> 并添加一个 <p>。
查看演示:http://jsfiddle.net/wa9pM/
我发现的一个技巧是在创建blockquote 之前在blockquote 下创建一个空的<p>。但是有没有办法用 JavaScript 打破这种格式化行为?不知道我将如何检查:如果光标在哪里,它是行尾,如果它是一个块引用并且在 Enter 键按下时,不要添加新的blockquote。
我正在使用这段代码在 JS 中生成blockquote:
document.execCommand('formatBlock', false, 'blockquote');
【问题讨论】:
-
我能想到的最佳解决方案是在按下回车键时触发一个事件。然后确定光标在 contenteditable 中的位置 - 如果它在
<br>之后,则它被按下在空白行上,然后应该从<blockquote>中跳出。请注意,这对我来说似乎很复杂。祝你好运。
标签: javascript html contenteditable paragraph