2010-07-27 3 views
1

입력란이 있습니다. 입력 유형 = "텍스트"class = "rulerInputText"id = "rulerInputBox"readonly
선택한 텍스트를 감지하고 주변에서 놀 수있는 자바 스크립트 코드가 있습니다.입력란 정확한 텍스트 선택

사용자가 실제로 텍스트를 선택할 수 있도록 허용 할 때 문제가 발생합니다. 텍스트는 공백이있는 기본 텍스트입니다. 사용자가 선택을 시작하면 문제는 없지만 공간에 도달하면 사용자가이를 선택하고 다음 단어가 자동으로 선택됩니다. 본질적으로, 나는 전체 단어의 자동 선택을 막고 싶다. 나는 사용자가 마우스로 선택하고자하는 것을 정확히 선택하기를 원한다.

이것이 가능합니까, 아니면 이런 일을하기 위해 어떤 종류의 미친 자바 스크립트 해킹을 사용해야합니까?

+0

당신이 말하는 것을 보여줄 수있는 가시적 인 예를 게시 할 수 있습니까? 따라 와야할지 모르겠다. – spinon

+0

간단한 텍스트 상자입니다 : . 시작 위치에서 끝까지 사용자가 선택하는 모든 것을 얻는 것뿐입니다. 다른 방법으로 div의 시작 위치와 끝 위치를 만들고, 부분 문자열을 만들고, 선택한 텍스트를 가져 오는 것입니다. –

답변

0

이것은 운영 체제의 기능입니다. OS가 제공 한 텍스트 상자는 자동 선택이 더 우수합니다 (user experience). 당신 여기에 어떤 통제권이 없다. (IE/Windows7에서만 확인)

+0

이것은 OS가 아닌 자동 선택 기능을 제공하는 브라우저입니다. 브라우저에 따라 다르지만 텍스트를 선택하는 방법은 아예 알지 못합니다. –

+0

그게 우울한 데요. 이제 더 나은 텍스트 선택 방법을 얻으려면 모두 나가야합니다. 도와 줘서 고마워. –

+0

@Ankit : 나는이 행동이 "더 나은"사용자 경험을 구성하지 못한다고 생각합니다. – Robusto

0

이것은 IE의 특징입니다. 다른 브라우저에는이 동작이 없습니다. Office에서 복사 한 의도적 인 "스마트 선택"(*) 기능이지만 새로운 버전의 Office에서는 포인터가 뒤로 이동하면 문자 선택으로 되돌릴 수 있습니다.

IE 나 클라이언트 측이나 서버 측에서 해제 할 방법이 없다는 것을 알고 있습니다. 마이크로 소프트가 그렇게 대단한 기능이라고 생각하기 때문입니다. 한숨. JavaScript 해킹조차도 방법을 제공하지 않습니다.

IE에서 각 문자가 두 번째 단어라고 생각할 수 있도록하려면 각 문자 사이에 보이지 않는 공백을 넣는 것이 좋습니다. 예. 다음을 선택하십시오.

f​o​o b​a​r b​o​f z​o​t 

문자는 유니 코드 U + 200B ZERO WIDTH SPACE 자입니다. 이것은 부작용이 있습니다. 사용자가 텍스트를 편집하거나 복사하여 붙여 넣으려고하면 잠재적으로 엉망으로 보이지 않는 이상한 문자가 표시됩니다.

(* :.... 두 번째 추측 일반적으로 잘못지고, 사용자, 그리고 맞아 일명 주장 "바보"의미 평소 "스마트"한 스마트 자체를 설명 아무것도에서 1 마일을 실행)

+0

사용자가 시각적 인 표현을 볼 필요가 있기 때문에이 방법을 사용하려고 생각했습니다. 그런 다음 선택 배경색 등을 쉽게 수정할 수 없다는 것을 깨달았습니다. 따라서 자신 만의 맞춤 스크립트를 만드는 것이 더 쉬울 수도 있습니다. –