>  기사  >  웹 프론트엔드  >  TextRange를 사용하여 입력 box_javascript 기술에서 커서 위치를 가져오는 코드

TextRange를 사용하여 입력 box_javascript 기술에서 커서 위치를 가져오는 코드

WBOY
WBOY원래의
2016-05-16 19:17:471118검색

TextRange는 HTML 요소에서 텍스트를 나타내는 데 사용되는 개체입니다. 이 개체는 자주 사용되지 않지만 IE4.0에서는 이미 제공됩니다. 그러나 TextRange에서 제공하는 호출 메서드는 상대적으로 모호합니다. 그렇다면 이를 통해 무엇을 할 수 있을까요?

TextRange의 전통적인 용도는 웹 페이지에서 사용자가 마우스로 원을 그리는 텍스트 콘텐츠를 변경, 삭제, 추가 등 조작하는 것입니다. 그러나 일반적인 용도는 웹 페이지에서 텍스트를 찾고(비교적 간단함) 입력 상자 커서의 위치를 ​​가져오는 것입니다. 후자는 입력을 제한하는 MaskTextBox와 같이 더 많은 유용한 용도를 파생할 수 있습니다. 핵심 기술 요점은 입력 상자의 커서 위치를 얻은 다음 정규식을 사용하여 입력 내용을 결정하는 것입니다. 나중에 소개할 "방향키를 사용하여 입력 상자 매트릭스에서 자연스러운 탐색"도 있습니다. 핵심 기술 포인트는 입력 상자에서 커서 위치를 얻는 것입니다.

입력 상자에서 커서 위치를 가져오는 전체 코드는 실제로 매우 짧지만 이러한 개체와 메서드는 일반적으로 사용되지 않습니다.



TextRange의 구체적인 사용법을 완전히 이해하려면 관련 내용을 알아야 합니다. MSDN을 참조하세요.


여기에서는 GetCursorPsn() 메서드를 사용할 경우 입력 상자 작업이 발생하는 부작용에 대해 설명합니다. 입력 상자
의 텍스트를 선택할 수 없으며 Shift 위, 아래, 왼쪽도 더 이상 사용할 수 없습니다. 텍스트를 선택하려면 오른쪽 화살표 키를 사용하세요. 코드가 텍스트에 대한 현재 커서의 startPoint를 얻은 후 rng.collapse(false);를 호출하면 텍스트 상자에 있는 텍스트의 EditPoint가 변경되기 때문입니다. 그러나 이 부작용은 기본적으로 텍스트 상자를 사용할 때 큰 문제를 일으키지 않으므로 기본적으로 너무 많은 주의를 기울일 필요가 없습니다. <script> <BR>function GetCursorPsn(txb) <BR>{ <BR> var slct = document.selection; <BR> var rng = slct.createRange(); <BR> txb.select(); <BR> rng.setEndPoint("StartToStart", slct.createRange()); <BR> var psn = rng.text.length; <BR> rng.collapse(false); <BR> rng.select(); <BR> return psn; <BR>} <BR></script>

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.