js如何实时精确地获取鼠标选中的html内容,代码如下:

function getHtml(win){
  if (win.getSelection) {
     var range=win.getSelection().getRangeAt(0);
     var container = win.document.createElement('div');
     container.appendChild(range.cloneContents());
     return container.innerHTML;
  }
  else if (win.document.getSelection) {
     var range=win.getSelection().getRangeAt(0);
     var container = win.document.createElement('div');
     container.appendChild(range.cloneContents());
     return container.innerHTML;
   }
   else if (win.document.selection) {
      return win.document.selection.createRange().htmlText;
   }
}

这段代码有时可以获取到带样式的html,但有时获取的却是纯文本,不知道是什么原因,我想精确地获取选中的html,不知道该如何获取?

慕哥6287543
浏览 558回答 3
3回答

白板的微信

你选中了文本,这个时候可以找到文本的父元素,这样就可以得到这个元素的html了。如果有多个兄弟节点需要去除。

交互式爱情

这样不行的,呵呵,比如<li>222<font size=7>1111111111111</font></li>,如果我只选中了三个一的话,那父节点该算到什么时候停呢?感觉不是很精确,不知道有没有更好的办法,呵呵
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript