18
자바 스크립트에서 범위와 선택 객체의 차이점을 알고 싶었습니다.브라우저의 범위와 선택의 차이점
이 두 가지 중 하나에서 같은 기능을 사용할 수 있습니다. 어떤 경우에 두 가지 중 어느 것을 사용해야하는지 알고있는 특정 상황이 있습니까? Range
독립적 시각적 표현의 문서의 연속 부분을 나타낸다
자바 스크립트에서 범위와 선택 객체의 차이점을 알고 싶었습니다.브라우저의 범위와 선택의 차이점
이 두 가지 중 하나에서 같은 기능을 사용할 수 있습니다. 어떤 경우에 두 가지 중 어느 것을 사용해야하는지 알고있는 특정 상황이 있습니까? Range
독립적 시각적 표현의 문서의 연속 부분을 나타낸다
근본적인 차이는 Selection
는 사용자의 선택을 나타내는 것이다. Selection
은 (거의) 0, 하나 또는 그 이상의 숫자로 나타낼 수 있지만 범위는 선택과 완전히 독립적으로 생성 및 수정할 수 있습니다. 예를 들어, Selection
의 deleteFromDocument()
은 그 구성 범위의 모든에 deleteContents()
를 호출하는 것과, 당신이 anchorNode
, anchorOffset
사용하여 선택에서 가장 최근에 선택한 범위의 경계를 얻을 수 있습니다 :이 기능에 약간의 중복이
, focusNode
및 focusOffset
속성 그러나 몇 가지 중요한 차이가 있습니다.
Selection
에는 여러 범위가 포함될 수 있습니다. 그러나 현재이 기능을 지원하는 주요 브라우저는 Firefox뿐입니다.Selection
이있는 나는 (focusNode
및 focusOffset
으로 표시) 선택의 끝 경계가 시작 경계 (anchorNode
및 anchorOffset
)보다 문서의 이전 발생할 수 있다는 것을 의미한다 "뒤로"될 수 있습니다. 범위에는 방향이 없습니다.toString()
은 다르게 작동합니다. 대부분의 브라우저 (특히 IE 9는 아님)에서 Selection
객체의 toString()
을 호출하면 선택된 보이는 텍스트 만 반환되고 범위의 toString()
을 호출하면 <script>
요소를 포함하여 범위 내의 모든 텍스트 노드가 연결됩니다. CSS를 통해 숨겨진 요소.
다음 표를 참조하십시오 : http://www.quirksmode.org/dom/range_intro.html#link2. – Blender