我有一个contenteditable元素,每当我输入一些东西并点击ENTER它创建一个新的<div>并将新的行文本放在那里.我不喜欢这一点.
是否有可能防止这种情况发生或至少只是用一个<br>?
这是演示http://jsfiddle.net/jDvau/
注意:这不是firefox中的问题.
我contenteditable在SAFARI/CHROME上有换行问题.当我在contentEditable上按"return" <div>,而不是创建一个<br>(像Firefox),他们创建一个新的<div>:
<div>Something</div>
<div>Something</div>
Run Code Online (Sandbox Code Playgroud)
看起来像(在contentEditable DIV上):
Something
Something
Run Code Online (Sandbox Code Playgroud)
但是在清理(删除<div>)之后,我得到了这个:
SomethingSomething
Run Code Online (Sandbox Code Playgroud)
在Firefox中,contenteditable是:
Something
<br>
Something
Run Code Online (Sandbox Code Playgroud)
卫生处理后看起来一样:
Something
Something
Run Code Online (Sandbox Code Playgroud)
是否有任何解决方案可以跨浏览器"规范化"这个?
我已经在Make a <br>而不是<div> </ div>上找到了这个代码,只需在一个contenteditable上按Enter键
$(function(){
$("#editable")
// make sure br is always the lastChild of contenteditable
.live("keyup mouseup", function(){
if (!this.lastChild || this.lastChild.nodeName.toLowerCase() != "br") {
this.appendChild(document.createChild("br"));
}
})
// use br instead of div div
.live("keypress", function(e){
if (e.which == 13) {
if (window.getSelection) {
var …Run Code Online (Sandbox Code Playgroud)