InternetExplorer에서 Enter를 누를 때마다 contentEditable DIV가 새로운 단락 (<p></p>
)을 생성하고 Firefox는 <br/>
태그를 만듭니다. IE가 새로운 단락 대신 <br/>
을 삽입하도록 강제 할 수 있습니까?즉, contentEditable 요소가 Enter 키에 단락을 만들지 않도록합니다.
답변
예 keydown 이벤트를 먼저 중지하고 (window.event.stopPropagation();
) 문단 삽입을 피하고 삽입물 HTML command을 사용하여 문자열을 삽입 할 수 있습니다.
그러나 IE는이 divs 스타일 설정 등에 따라 다르며 <br>을 사용하면 문제가 발생할 것입니다.
TinyMCE or other editors과 같은 프로젝트를 사용하고 다른 브라우저 문제에 대한 모든 종류의 해결 방법이 있으므로 원하는대로 동작하는 편집기를 검색해보십시오. 아마 당신은 < BR에게 >의를 사용하는 편집기 ...
당신이 그것을 사용하는 경우, FCKEditor이
에 대한 설정이 여기에 솔루션 (jQuery를 사용)의를 찾을 수 있습니다. 'BR로 변경'버튼을 클릭하면 <p></p>
태그 대신 <br>
태그가 삽입됩니다.
HTML :
<div id='editable' contentEditable="true">
This is a division that is content editable. You can position the cursor
within the text, move the cursor with the arrow keys, and use the keyboard
to enter or delete text at the cursor position.
</div>
<button type="button" onclick='InsertBR()'>Change to BR</button>
<button type="button" onclick='ViewSource()'>View Div source</button>
자바 스크립트 :
function InsertBR()
{
$("#editable").keypress(function(e) {
if (e.which == 13)
{
e.preventDefault();
document.selection.createRange().pasteHTML("<br/>")
}
});
}
function ViewSource()
{
var div = document.getElementById('editable');
alert('div.innerHTML = ' + div.innerHTML);
}
IE11 +에서'pasteHTML()'대신'insertNode()'를 사용하고 [여기]에서 언급 한 크로스 브라우저 (http://stackoverflow.com/questions/6690752/insert-html-at-caret-in-a-contenteditable) -div/6691294 # 6691294) –
당신은 항상 + 이 한 줄의 반환을위한를 입력하고 단락 반환을위한를 입력 SHIFT를 사용하는 방법을 배우게 할 수 있습니다. IE는 이와 관련하여 MS Word처럼 작동합니다.
하여 편집 <div>
작품 내부의 <p>
의 line-height
변경 :
#editable_div p
{
line-height: 0px;
}
- 1. 단축키에서 ContentEditable 요소가 반응하지 않습니다.
- 2. ContentEditable - Enter 키를 눌러 P 생성 태그
- 3. 은 div 내의 모든 요소가 선택되지 않도록합니다. \
- 4. contentEditable 경우 어떤 요소가 수정되는지 어떻게 알 수 있습니까?
- 5. JDialog 버튼이 Enter 키에 응답하도록 만들기
- 6. 오버 플로우 요소가 변경되면 Firefox가 스크롤 위치를 재설정하지 않도록합니다.
- 7. HTML 단락을 입력하여 단락을 입력하십시오.
- 8. contentEditable
- 9. jquery contenteditable linebreak
- 10. AcceptButton을 None으로 설정하면 Enter 키에 양식이 여전히 닫힙니다.
- 11. ASP.NET : Enter 키에 대해 기본적으로 반응해야하는 단추를 지정하는 방법은 무엇입니까?
- 12. 사이트 디렉토리가 표시되지 않도록합니다.
- 13. 페이지가 표시되지 않도록합니다.
- 14. 즉 브라우저
- 15. HTML5 ContentEditable
- 16. Textarea contenteditable
- 17. 이 단락을 사용하여
- 18. 단락을 파일에 작성하십시오.
- 19. 단락을 ZSH의 줄로 나누기
- 20. PHP 무작위 단락을 얻으십시오
- 21. 정당한 단락을 이미지로 변환
- 22. 데이터베이스에 단락을 어떻게 저장합니까?
- 23. Regex 단락을 추출하려면
- 24. WPF 팝업이 화면에 얽히게하지 않도록합니다.
- 25. 번역 트윈이 재설정되지 않도록합니다. - android
- 26. Drupal "enter key"가 텍스트 영역에서 작동하지 않습니다.
- 27. ContentEditable content 확인
- 28. Firefox에서 contenteditable 관련 문제
- 29. 로컬 호스트; contentEditable; security
- 30. Firefox 및 contentEditable span
나누기 취소이 전략을. Enter를 누를 때마다 DOM을 변경하므로 사용자는 더 이상 실행 취소 메뉴를 사용하여 변경 사항을 취소 할 수 없습니다! –
명령을 사용하여 DOM을 조작해도 실행 취소가 취소되지 않습니다. 모든 명령을 취소 할 수 있습니다. 물론 div.innerHTML = "foo"와 같은 것을 피해야합니다. –