我有一个内容可编辑的 div:
<div id="result" class="content" contenteditable="true"><p><br/></p></div>
我希望在按 ENTER 时形成新段落,为此我拦截 ENTER 键并通过插入 html 代码替换默认操作:
$(".content").on("keydown",function(e){if(e.which == 13) { e.preventDefault(); pasteHtmlAtCaret("</p><p><br/>");}});
我希望当我按 ENTER 时,</p><p><br/>
将关闭现有段落并打开一个新段落。所以,如果我输入:'hello world' + ENTER,我应该有:
<p>hello world</p><p><br/></p>
你可以在哪里认出这</p><p><br/>
件作品。我观察到不同的行为。我得到:
<p>hello world<p></p><p><br></p></p>
所以似乎第一个</p>
产生了一个开始<p>
标签,而<p>
就在<br/>
标签之前产生了一个匹配的结束 p 标签。这是否意味着我的浏览器忽略了 wrapping 的存在<p></p>
?p
当我插入一小段 html 代码时,如何避免产生新标签?
我正在使用 Chromium 和 jQuery 1.7.2。