繁体   English   中英

当我重点关注页面中的另一个元素时,如何将选择保持在div中?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM