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