복붙노트

[JQUERY] 자바 스크립트와 일반 텍스트 선택

JQUERY

자바 스크립트와 일반 텍스트 선택

해결법


  1. 1.

    if (window.getSelection) {
      if (window.getSelection().empty) {  // Chrome
        window.getSelection().empty();
      } else if (window.getSelection().removeAllRanges) {  // Firefox
        window.getSelection().removeAllRanges();
      }
    } else if (document.selection) {  // IE?
      document.selection.empty();
    }
    

    씨 Y.에 신용


  2. 2.가장 직접 원하는 기능을 테스트합니다 :

    가장 직접 원하는 기능을 테스트합니다 :

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

  3. 3.나는 내 자신의 몇 가지 조사를했다. 여기에 내가 쓴이 일을 사용하고있는 기능이다 :

    나는 내 자신의 몇 가지 조사를했다. 여기에 내가 쓴이 일을 사용하고있는 기능이다 :

    (function deselect(){
      var selection = ('getSelection' in window)
        ? window.getSelection()
        : ('selection' in document)
          ? document.selection
          : null;
      if ('removeAllRanges' in selection) selection.removeAllRanges();
      else if ('empty' in selection) selection.empty();
    })();
    

    기본적 대해 getSelection (). removeAllRanges ()는 현재 (IE9 + 포함) 모든 최신 브라우저에서 지원됩니다. 이 명확하게 전진하는 올바른 방법입니다.

    호환성 문제를 차지했다 :

    아마 재사용이 선택 기능을 마무리하는 것이 좋습니다.

    function ScSelection(){
      var sel=this;
      var selection = sel.selection = 
        'getSelection' in window
          ? window.getSelection()
          : 'selection' in document
            ? document.selection
            : null;
      sel.deselect = function(){
        if ('removeAllRanges' in selection) selection.removeAllRanges();
        else if ('empty' in selection) selection.empty();
        return sel; // chainable :)
      };
      sel.getParentElement = function(){
        if ('anchorNode' in selection) return selection.anchorNode.parentElement;
        else return selection.createRange().parentElement();
      };
    }
    
    // use it
    var sel = new ScSelection;
    var $parentSection = $(sel.getParentElement()).closest('section');
    sel.deselect();
    

    표준이 진화하면 사람들이이 기능을 추가 또는 업데이트 일 수 있도록 나는이 커뮤니티 위키했습니다.


  4. 4.여기에 있지만 두 줄의 코드에서 허용 대답입니다 :

    여기에 있지만 두 줄의 코드에서 허용 대답입니다 :

    var selection = window.getSelection ? window.getSelection() : document.selection ? document.selection : null;
    if(!!selection) selection.empty ? selection.empty() : selection.removeAllRanges();
    

    유일한 removeAllRanges의 존재입니다 내가하지 않습니다 확인 -하지만 AFAIK 중 하나 window.getSelection가 있거나을 document.selection하지만 속성에 대한 .empty 또는 .removeAllRanges 중 하나가없는 어떤 브라우저가 없다.


  5. 5.window.getSelection ()는 당신이 그것을 조작 할 수있는 몇 가지가있다, 당신은 거기에서, 선택한 텍스트에 액세스 할 수 있습니다 ..

    window.getSelection ()는 당신이 그것을 조작 할 수있는 몇 가지가있다, 당신은 거기에서, 선택한 텍스트에 액세스 할 수 있습니다 ..

    자세히보기 : 개발자 모질라 DOM 선택을


  6. 6.마우스 오른쪽 버튼을 클릭하고 텍스트 선택을 방지하기 위해 스크립트에 이것을 추가합니다.

    마우스 오른쪽 버튼을 클릭하고 텍스트 선택을 방지하기 위해 스크립트에 이것을 추가합니다.

    예외가 VAR '톰'에 추가 할 수 있습니다.

    var d=document,om=['input','textarea','select'];;
    function ie(){if(d.all){(mg);return false;}}function mz(e){if(d.layers||(d.getElementById&&!d.all)){if(e.which==2||e.which==3){(mg);return false;}}}if(d.layers){d.captureEvents(Event.mousedown);d.onmousedown=mz;}else{d.onmouseup=mz;d.oncontextmenu=ie;}d.oncontextmenu=new Function('return false');om=om.join('|');function ds(e){if(om.indexOf(e.target.tagName.toLowerCase())==-1);return false;}function rn(){return true;}if(typeof d.onselectstart!='undefined')d.onselectstart=new Function('return false');else{d.onmousedown=ds;d.onmouseup=rn;}
    
  7. from https://stackoverflow.com/questions/3169786/clear-text-selection-with-javascript by cc-by-sa and MIT license