HTML 온라인 편집기 만 들 기 어 려 운 분석
사실 여러 가지 실현 방식 이 있 는데 현재 가장 많이 사용 되 고 호환성 이 가장 좋 은 것 은 iframe 방식 이다.
<iframe src="" frameborder="0"></iframe>
이 빈 iframe 만 은 안 됩 니 다.자 바스 크 립 트 로 편집 가능:
iframe.contentWindow.document.designMode = "on";
iframe.contentWindow.document.contentEditable = true;
다시 말 하면 HTML 온라인 편집 기 는 편집 가능 한 iframe 이다.굵게,기울 임 꼴,밑줄 긋 기,링크 추가 등 기능 은 어떻게 실현 합 니까?
브 라 우 저 는 이러한 기능 을 실현 하 는 인터페이스 exec Command:
iframe.contentWindow.document.execCommand(cmd, isDefaultShowUI, value);
을 제공 합 니 다.이 세 개의 매개 변 수 는 다음 과 같다.
대화 식 문제
사용 자 는 항상 편집기 에 입력 할 수 없습니다.예 를 들 어 굵기,그림 삽입 등 기능 은 단 추 를 통 해 작 동 합 니 다.사용자 가 선택 한 텍스트 를 굵게 하려 고 한다 고 가정 하면 굵게 하기 단 추 를 누 르 면 선택 영역 과 초점 도 따라 갈 수 있 기 때문에 선택 영역(선택 한 텍스트)을 잃 어 버 리 면 작업 이 완료 되 지 않 습 니 다.그림 을 삽입 할 때 삽입 위치 도 잃 어 버 리 는 것 과 같다.
마지막 편집기 에 나타 난 선택 영역 을 저장 해 야 한 다 는 것 이다.편집기 에 초점 을 맞 출 때 타이머(setInterval)로 현재 선택 영역 을 가 져 오 는 방안 입 니 다.지역 구 프로 그래 밍 은 평소에 거의 사용 되 지 않 았 고 호환성 문제 도 많 았 다.주로 마이크로소프트 MSDN(TextRange ControlRange)과 모 질 라 의 MDC(Range Selection)를 참고 했다.
리 턴 문제
IE 에서 Enter 를 누 르 면 단락 을 바 꾸 고
를 생 성 하지만 Firefox 에 서 는 줄 을 바 꾸 고
를 생 성 합 니 다.이 문 제 를 해결 하려 면 키 다운 이 벤트 를 감청 해 야 합 니 다.버튼 이 리 턴 인 것 을 감지 하면'p>
표준 코드 가 져 오기
어떻게 편집 한 내용 을 가 져 옵 니까?이 문 제 는 간단 합 니 다.iframe 페이지 body 의 innerHTML 만 가 져 오 면 됩 니 다.
var content = iframe.contentWindow.document.body.innerHTML;
그러나 IE 의 innerHTML 은 매우 표준 적 이지 않 습 니 다.태그 이름 은 대문자 이 고 속성 은 따옴표 가 없 으 며 단일 태그 도 끝 이 없습니다.Firefox 에서 가 져 온 코드 라 도 약간의 흠 이 있 습 니 다.이 럴 때 는 코드 를 정규 표현 식 으로 표준화 처리 해 야 한다.총결산
더 이상 말 하지 않 겠 습 니 다.HTML 편집 기 를 한 번 만 들 면 CKEditor 이 얼마나 강 한 지 알 수 있 을 것 입 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
XSS 사용해보기이 검증은 자신이 관리하는 가상 머신의 웹 서버에서 수행됩니다. 크로스 사이트 스크립팅 (이하 XSS)을 실제로 시도하고 철저히 이해하는 목적. 이 기사에서는 서버에서 수행하는 처리 내용과 XSS 방법에 대해 설명합...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.