2

我正在尝试从用户那里获取选定的文本(用户突出显示的突出显示的文本)。

我有以下内容:

function getSelectedTexts(){
  var t = '';
  if(window.getSelection){
    t = window.getSelection();
    console.log('1');
  }else if(document.getSelection){
    t = document.getSelection();
    console.log('2');
  }else if(document.selection){
      console.log('3');
    t = document.selection.createRange().text;
  }
    return t;
   }


 $('.text_speech').live('click',function(e){
      e.preventDefault();
      var textTest='';

      textTest=getSelectedTexts();
      console.log(textTest);

  })

我的控制台返回

1

>Selection   <------object
 anchorNode: Text
 anchorOffset: 2
 baseNode: Text
 baseOffset: 2
 extentNode: Text
 extentOffset: 1
 focusNode: Text
 focusOffset: 1
 isCollapsed: false
 rangeCount: 1
 type: "Range"
 __proto__: Selection

我不确定如何获取选定的文本。任何人都可以帮助我吗?非常感谢!

4

2 回答 2

2

window.getSelection()返回一个Selection对象。

如果您想不加思索地获得选定的文本,您应该这样做:

 window.getSelection().toString()

但如果您的选择可能更复杂,您应该阅读MDN 文档

例如,用户可能会选择带有多个标签的文本:

 <div class="text_speech">
   <p>First paragraph</p>
   <p>Second paragraph <strong>big</strong></p>
 </div>

如果用户选择所有句子“段落第二段”,那么简单的方法将行不通。

于 2012-09-25T18:40:01.550 回答
0

尝试:

console.log(textTest.toString());
于 2012-09-25T18:26:06.017 回答