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>

ユーザーがすべての文を選択した場合'段落2番目の段落大きい'その場合、簡単な方法は機能しません。

于 2012-09-25T18:40:01.550 に答える
0

試す:

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