Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用Javascript获取span选定部分_Javascript_Highlighting - Fatal编程技术网

如何使用Javascript获取span选定部分

如何使用Javascript获取span选定部分,javascript,highlighting,Javascript,Highlighting,有没有办法在跨度上获取高亮显示的selectionstart和SelectedLength 谢谢您可能会在下面找到一些答案:试试这个: var span = document.getElementById('span1'); if (document.selection) { //IE var bm = document.selection.createRange().getBookmark(); var sel = span.createTextRange();

有没有办法在跨度上获取高亮显示的selectionstart和SelectedLength


谢谢

您可能会在下面找到一些答案:

试试这个:

  var span = document.getElementById('span1');
  if (document.selection) { //IE
      var bm = document.selection.createRange().getBookmark();
      var sel = span.createTextRange();
      sel.moveToBookmark(bm);

      var sleft = span.createTextRange();
      sleft.collapse(true);
      sleft.setEndPoint("EndToStart", sel);
      span.selectionStart = sleft.text.length
      span.selectionEnd = sleft.text.length + sel.text.length;
      span.selectedText = sel.text;
  }
  else if (span.selectionStart){ //FF
     span.selectedText = span.substring(span.selectionStart,span.selectionEnd);
  }

  alert("Selection Start==> " + span.selectionStart + "\n" +
     "Selection End  ==> " + span.selectionEnd + "\n" +
     "Selected Text  ==> " + span.selectedText + "\n" +
     "TextArea Value ==> " + span.value);

我在中使用了我自己的算法优化,它为IE的TextRange(这是您从IE中的选择中得到的)提供了一个包装器,为它们提供与DOM范围相同的接口

要获取文档中的选择,请使用以下内容:

var sel = window.getSelection(); // Provided by IERange in IE, built-in in other browsers
var range = sel.getRangeAt(0); // Note this doesn't work in Safari 2

range
现在具有属性
startContainer
startOffset
,它们分别是对节点的引用和该节点内表示选择开始的偏移,以及表示选择结束的相应属性
endContainer
endOffset

请准确告诉我们您想做什么。您好,感谢您的快速响应。这里的问题是,当用户选择特定范围(asp.net标签)上的文本片段时,我需要获取所选的开始和结束?我可以这样做吗?谢谢,但是span.createTextRange();给出了一个错误。它只支持文本区域