0

私はテキストエディターで作業しており、 @TimDown の rangy lib を大いに活用していますが、テキストを選択し、テキスト入力にフォーカスしてリンクを書き込むと、後でこのリンクが選択に適用されます、選択を失い、選択が選択解除されます!

4

1 に答える 1

0

次のように選択を変数に保存できます。

  var sel = window.getSelection().getRangeAt(0);   //get cursor position
  sel = [[sel.startContainer,sel.startOffset],  
         [sel.endContainer,sel.endOffset]
  ];   //save cursor position (start and end);
  /*Do whatever, let the user change selected element*/

変数を選択すると、やりたいことが何でもできます。ただし、選択に含まれるノードは変更しないでください。変更すると、選択が無効な範囲を指します。
これで、テキストを再度選択できます。

  var range = document.createRange();  //Creade range object. This is not IE compatible!
  range.setStart(sel[0][0], sel[0][1]);  //Load start from our variable
  range.setEnd(sel[1][0], sel[1][1]);    //Load end too
  var s = window.getSelection();
  s.removeAllRanges();  //I'm not sure this is necessary
  s.addRange(range);

次に、テキストを取得できます。

  alert("Selected: "+s.toString());
于 2013-02-09T14:44:12.650 に答える