복붙노트

[JQUERY] / JQuery와 선택한 텍스트 자바 스크립트의 계산 위치?

JQUERY

/ JQuery와 선택한 텍스트 자바 스크립트의 계산 위치?

해결법


  1. 1.여기에 잘 사용 사례의 일을 할 수이 작업을 수행하는 몇 가지 간단한, 순진 코드입니다. 그것은 (예를 들어, CSS에 의해 또는 또는 요소 내부 됨으로써 중) 계정으로 보이지 않게 할 수있는 텍스트를하지 않고 줄 바꿈 브라우저 불일치 (다른 모든 대 IE)를 가질 수 있으며, 축소 된 공백의 어떤 계정을지지 않습니다 (예 : 페이지에서 한 눈에 보이는 공간으로 붕괴 2 개 이상의 연속적인 공백 문자로). 그러나, 모든 주요 브라우저에서 예를 들어 작업을 수행합니다.

    여기에 잘 사용 사례의 일을 할 수이 작업을 수행하는 몇 가지 간단한, 순진 코드입니다. 그것은 (예를 들어, CSS에 의해 또는 또는 요소 내부 됨으로써 중) 계정으로 보이지 않게 할 수있는 텍스트를하지 않고 줄 바꿈 브라우저 불일치 (다른 모든 대 IE)를 가질 수 있으며, 축소 된 공백의 어떤 계정을지지 않습니다 (예 : 페이지에서 한 눈에 보이는 공간으로 붕괴 2 개 이상의 연속적인 공백 문자로). 그러나, 모든 주요 브라우저에서 예를 들어 작업을 수행합니다.

    라이브 데모 : http://jsfiddle.net/UuDpL/2/

    암호:

    function getSelectionCharOffsetsWithin(element) {
        var start = 0, end = 0;
        var sel, range, priorRange;
        if (typeof window.getSelection != "undefined") {
            range = window.getSelection().getRangeAt(0);
            priorRange = range.cloneRange();
            priorRange.selectNodeContents(element);
            priorRange.setEnd(range.startContainer, range.startOffset);
            start = priorRange.toString().length;
            end = start + range.toString().length;
        } else if (typeof document.selection != "undefined" &&
                (sel = document.selection).type != "Control") {
            range = sel.createRange();
            priorRange = document.body.createTextRange();
            priorRange.moveToElementText(element);
            priorRange.setEndPoint("EndToStart", range);
            start = priorRange.text.length;
            end = start + range.text.length;
        }
        return {
            start: start,
            end: end
        };
    }
    
    alert( getSelectionCharOffsetsWithin(document.body).start );
    

  2. 2.HTML 페이지를 강조하기위한 다음과 같은 자바 스크립트 기능을 사용하여 ..

    HTML 페이지를 강조하기위한 다음과 같은 자바 스크립트 기능을 사용하여 ..

    function stylizeHighlightedString() 
    {
        var range               = window.getSelection().getRangeAt(0);
        var selectionContents   = range.extractContents();
        var span                = document.createElement("span");
        span.appendChild(selectionContents);
        span.setAttribute("class","uiWebviewHighlight");
    
        span.style.backgroundColor  = "red";
        span.style.color            = "white";
    
        range.insertNode(span);
    }
    
  3. from https://stackoverflow.com/questions/7991474/calculate-position-of-selected-text-javascript-jquery by cc-by-sa and MIT license