JavaScript의 마우스로 텍스트 선택을 시뮬레이션 할 수 있습니까?

StackOverflow https://stackoverflow.com/questions/1426256

  •  07-07-2019
  •  | 
  •  

문제

왼쪽 마우스 버튼을 시뮬레이션하여 페이지에서 텍스트를 선택하고 지정된 x, y 위치 (픽셀)로 드래그하고 싶습니다.

JavaScript로 수행 할 수 있습니까?

도움이 되었습니까?

해결책

나는 JavaScript를 사용하여 이런 식으로 마우스를 제어 할 수 없다고 생각합니다.

그러나 JavaScript를 사용하여 직접 문서의 일부를 선택할 수 있습니다. 예를 들어:

var h3s = document.getElementsByTagName("h3");
var range = document.createRange();
range.selectNode(h3s[0]);
window.getSelection().addRange(range);

첫 번째 H3 요소를 선택합니다.

또한 참조 : http://www.quirksmode.org/dom/range_intro.html 건축 범위에 대한 자세한 정보.

문서 전체를 선택하려면 다음을 사용할 수 있습니다.

var body = document.getElementsByTagName("body")[0];
var range = document.createRange();
range.selectNode(body);
window.getSelection().addRange(range);

문서에서 4 번째 단락의 세 번째 문자를 선택하려면 시도해보십시오.

var p4 = document.getElementsByTagName("p")[3].firstChild;
var range = document.createRange();
range.setStart(p4, 2);
range.setEnd(p4, 3);
window.getSelection().addRange(range);

다른 팁

    /**
     * Select text between 2 elements. Support selection of continuous elements.
     * @param {Object} element1 begin element.
     * @param {Object} element2 end element.
     */
    function selectBetweenTwoElements(element1, element2) {
        if (window.getSelection) {
            /* all browsers, except IE 8 and IE 7 */
            var selection = window.getSelection();
            selection.removeAllRanges();
            var range = document.createRange();
            range.setStart(element1, 0);
            range.setEnd(element2, 1);
            selection.addRange(range);
        } else {
            /* works fine in IE 8 / IE 7 */
            if (document.body.createControlRange) {
                var range1 = document.body.createTextRange();
                range1.moveToElementText(element1);

                var range2 = document.body.createTextRange();
                range2.moveToElementText(element2);

                var range = document.body.createTextRange();
                range.setEndPoint("StartToStart", range1);
                range.setEndPoint("EndToEnd", range2);
                range.select();
            }
        }
    }

내가 아는 한, 그 일을 할 수없는 한. 선택할 수있는 유일한 텍스트는 양식 요소 (TextArea, 입력 텍스트 등)입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top