当用户在contenteditable
元素中插入换行符时,浏览器会将 HTML 插入元素中。
这是您[Enter]
在各种浏览器中点击时得到的结果:
IE: <p></p>
Chrome: <div><br></div>
Safari: <div><br></div>
Firefox: <br />
Opera: <br />
(用这个 JSFiddle 演示自己测试一下。)
当用户没有插入任何 HTML 时,有没有办法让浏览器不插入 HTML?当然,我可以使用
<textarea></textarea>
...这确实与我想要的非常相似,但是,我不想要严格的“纯文本”输入,因为我将使用 Javascript 在可编辑元素中添加和修改 HTML。
我考虑过在用户键入时不断剥离所有 HTML,只允许保留具有我创建的特殊类的 HTML。然而,这似乎不是一个很好的解决方案。有没有类似wrap='soft'
或其他方式说“停止编写 HTML 并将其放入我的元素中!”