【问题标题】:The opposite to window.getSelection()与 window.getSelection() 相反
【发布时间】:2018-09-19 21:47:52
【问题描述】:

我正在使用 window.getSelection().addRange(range) 选择要复制的文本:

  var targetelement = document.getElementById("someid"), 
  range = document.createRange();
  range.selectNode(targetelement);
  window.getSelection().addRange(range);
  document.execCommand('copy')

它可以工作,但是浏览器(firefox)在代码完成后选择标签内的文本。如何取消选择它?是否有某种与 window.getSelection 功能或方法相反的功能或方法?

【问题讨论】:

标签: javascript


【解决方案1】:

复制后触发focusblur 到此输入字段以取消选择文本。

【讨论】:

    【解决方案2】:
    <div id="someid">
    This is a test man
    </div>
    
    <div id="empty">
    </div>
    
    
    <script>
        var targetelement = document.getElementById("someid");
        var  range = document.createRange();
      range.selectNode(targetelement);
      window.getSelection().addRange(range);
      document.execCommand('copy');  
    
       window.getSelection().removeAllRanges();
    </script>
    

    https://jsfiddle.net/s1teLukn/5/

    【讨论】:

    • Menelaos Bakopoulos,在这种情况下我要补充什么?请解释一下。 window.getSelection().empty; ?
    • window.getSelection().removeAllRanges();
    【解决方案3】:

    这段旧代码适用于所有浏览器:

    var sel = window.getSelection ? window.getSelection() : document.selection;
    
    if (sel) {
        if (sel.removeAllRanges) {
            sel.removeAllRanges();
        } else if (sel.empty) {
            sel.empty();
       }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-02-17
      • 2014-02-15
      • 2011-11-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-01
      • 2021-09-17
      相关资源
      最近更新 更多