저는 텍스트 영역을 기반으로하는 맞춤 토큰 필드를 만들고 있습니다. 아이디어는 div 요소가있는 텍스트 영역을 절대적으로 위에 놓는 것입니다. 따라서 은 텍스트 영역에있는 것처럼처럼 보입니다.어떻게 뒤로 선택을 설정합니까?
지금까지 고통 스러웠지 만 한 가지를 제외하고는 거의 모든 것을 처리했습니다.
역 선택을 자바 스크립트로 설정할 수 있습니까? 텍스트 영역의 중간에 커서를 놓으면 shift 키를 누른 상태에서 왼쪽 화살표를 몇 번 누르면 선택 항목이 표시됩니다. 까다로운 부분은 평소와 다르다는 것입니다. 뒤로 가야합니다. (시작은 오른쪽에서 시작하는 것이지 일반적으로는 그렇지 않습니다.) 내 div (토큰)를 표시하는 텍스트 영역에 자리 표시자가 있습니다. 그 중 하나를 탐색하면 커서가 자리 표시 자의 반대쪽 가장자리로 점프하므로 자연 스럽습니다. Shift 키를 누른 상태에서 자리 표시 자에 도달하면 오른쪽으로 점프하고 새 선택 항목을 설정하므로 토큰을 선택하는 것처럼 보입니다 (삭제를 누르고 토큰 자체로 선택된 범위를 제거 할 수 있습니다) . 새로운 선택을 설정하면이 일을 unreverted 만들 것 때문에 당신이, 오른쪽에서 왼쪽으로 이동한다면 그것은 늘 가능성이 작동 :
왼쪽에서 오른쪽 선택 :
abcde[start]efg[end](token)
[shift]+[right]
abcde[start]efg(token)[end]
[del]
abcde
오른쪽에서 왼쪽으로 선택
(token)[end]efg[start]abcde
[shift]+[left]
[start](token)abcdeefg[end] //see? it's back to normal
[shift]+[left]
[start](token)abcdeef[end]g //huh?! shift-right moves end point (unexpected)
abcde
그래서 여기가 질문 : 나는 끝 지점보다 더 큰 것 시작점 텍스트 영역에서 선택을 설정할 수 있습니까? 간단히 element.setSelectionRange(right, left)
가 파이어 폭스, 다른 어떤 아이디어에서 작동하지 않는가?
아주 좋은 질문입니다! – Boldewyn
이것은 매우 흥미 롭습니다. 링크를 얻을 수 있을까요, 아니면 NASA의 수퍼 스쿨입니까? :) –
진행중인 위젯에서 여전히 작동합니다. 하지만 아마 그것이 끝났을 때 나는 그것을 풀 수있을 것입니다 (mootools입니다). 다음은 작동 방식을 알려주는 이미지입니다. http://img.skitch.com/20091217-89kmqxu8subd5xr8yn1ut7953b.png (모든 종류의 이벤트를 감지하여 숨겨진 div에서 렌더링하려고 시도한 다음, 토큰의 위치와 텍스트 영역 위의 위치 지정) 사실 맥 오에스텐의 Mail.app에있는 tokenfield의 클론입니다. 매우 가까운 클론 복제본 :) – user233603