사용자가 선택한 것을 기반으로 HTML을 조작하는 자바 스크립트가 있습니다. 실제 브라우저의 난은 "범위"개체 레버리지를 사용하고 방법은 다음과 같은 얻을 :자바 스크립트 범위 객체의 줄 바꿈 감지 문제
var sel = window.getSelection();
var range = sel.getRangeAt(0);
var content = range.toString();
내용 변수가 잘 작동 선택한 모든 텍스트가 포함되어 있습니다. 그러나 결과 문자열에서 줄 바꿈을 감지 할 수 없다는 것을 알게되었습니다. 예를 들어 :
선택한 텍스트는 다음과 같습니다
ABC
데프
GHI
range.toString() "ABCDEFGHI"로 평가한다.
특수 문자를 검색하면 \ n \ f \ r 또는 \ s의 인스턴스가 반환되지 않습니다. 그러나 편집 가능한 컨트롤에 변수를 쓰면 줄 바꿈이 다시 나타납니다.
내가 누락 된 부분을 아는 사람이 있습니까?
이러한 선택 및 조작은 편집 가능한 div에 관한 것이 적절할 수 있습니다. Chrome, FireFox 및 Opera에서도 동일한 동작이 나타납니다. 놀랍게도 IE에는 완전히 다른 코드가 필요하지만 IE가 아닌 다른 문제는 없습니다.
감사합니다.
'range.toString()은 "abcdefghi"로 평가된다는 것이 무슨 뜻입니까? 그 가치를 조사하기 위해 당신은 무엇을 사용하고 있습니까? 디버거? 경보()? –
'range' 값을 편집 가능한 컨트롤이나'range.toString()'에 쓰고 있습니까? – RaYell
@Ben 위의 모든 것, 외부 디버거, 경고 또는 브라우저 기반 디버거를 사용하여 던롭. 예를 들어 Visual Studio로 중단 점에 들어가기. @RaYell - 내 range.toString()에서 결과를 작성하여 편집 가능한 div로 호출하여 줄 바꿈 정보를 유지했음을 증명했습니다. 첫 번째 대답은 네일이지만, sel.toString()에는 줄 바꿈이 있지만 range.toString()에는 줄 바꿈이 없습니다. 감사합니다. – Timbo