jQuery.html获取div而不是段落

时间:2015-01-17 10:25:05

标签: jquery html

我正在尝试使用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>

这是什么???我在这做错了什么?

代码示例:http://jsfiddle.net/ohhjjevf/3/

1 个答案:

答案 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;
  }

   }
});

会做的。