[英]How to keep the selection in a div when I focus in another element in the page?
我正在使用文本编辑器,并且@TimDown的rangy lib发挥了很大作用,但是当我选择一些文本并专注于文本输入以在其上编写链接时, 此链接将在以后应用于选择 ,我丢失了选择,并且选择变为未选择!
您可以将选择保存在以下变量中:
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());
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.