我正在尝试使用div contenteditable从用户输入中获取html代码。 不要担心HTML代码注入,需要注意。
无论如何,当我进入
bla1
bla2
bla3
输出,我相信应该是
bla1<br>bla2<br>bla3
然而,我得到的是
bla1<div>bla2</div><div>bla3</div>
有时甚至会变成
bla1<div>bla2</div><div>bla3<br></div>
这是什么???我在这做错了什么?
答案 0 :(得分:1)
你可以在这个答案中看到 - Dealing with line Breaks on contentEditable DIV
$editables = $('[contenteditable=true]');
$editables.filter("p,span").on('keypress',function(e){
if(e.keyCode==13){ //enter && shift
e.preventDefault(); //Prevent default browser behavior
if (window.getSelection) {
var selection = window.getSelection(),
range = selection.getRangeAt(0),
br = document.createElement("br"),
textNode = document.createTextNode("\u00a0"); //Passing " " directly will not end up being shown correctly
range.deleteContents();//required or not?
range.insertNode(br);
range.collapse(false);
range.insertNode(textNode);
range.selectNodeContents(textNode);
selection.removeAllRanges();
selection.addRange(range);
return false;
}
}
});
会做的。