2012-03-27 2 views
1

새 요소를 만들고 contentEditable을 true로 설정하여 입력을 시작한 다음 innerHTML을 보면 항상 끝에 <br>이 포함되어 있습니다. 입력하기 전에 innerHTML을 보면 올바른 값을 얻고 있습니다. 이게 정상인가? 내 문제는 내가 <br> 태그를 사용하는 라인의 수를 세고 있다는 것이고, 내가 필요로하는 것보다 많이 줄 수는 없다. 다음은 몇 가지 테스트 코드 (자바 스크립트)입니다.innerHTML을 얻으려면 <br> 태그가 추가로 필요합니다. 이것이 정상입니까?

var _this = this; 
function keyup(event) 
{ 
    if (event.keyCode == 112) 
    { 
     alert(_this.code.innerHTML); 
    } 
} 
function create() 
{ 
    this.code = document.createElement("div") 
    this.code.innerHTML = "Hello world.<br>I like testing popcorn.<br>Testing again."; 
    this.code.contentEditable = "true"; 
    this.code.onkeyup = keyup; 
    document.body.appendChild(this.code); 
    _this = this; 
} 
window.onload = function() 
{ 
    create(); 
} 

코드가 설정되어 있으므로 F1 키를 누르면 div의 내용이 표시됩니다. Firefox의 최신 버전을 사용하고 있습니다.

+0

innerHtml도 업데이트하는 코드를 게시 할 수 있습니까? –

+0

그냥 테스트 코드를 실행하면 div에 아무 것도 입력하지 않고 innerHTML을 업데이트 할 수 있습니다. –

답변

-1

먼저 <br />이 아니고 <br>이 아니고 두 번째로 div 요소가 블록 요소이고 <br> 태그가 보이지 않아야하지만 div를 만든 후에는 새 줄이 표시됩니다.

div 요소를 만든 후에 innerHTML 값을 출력하면 출력은 무엇입니까?

+0

우선,
은 W3 유효성 검사기로 유효성을 검사하지 않습니다. 생성 된 innerHTML을 출력 할 때 끝 문자
없이 입력 한 것과 동일한 결과를 얻습니다. 내 테스트 코드의 측면에서 : "안녕하세요.
나는 팝콘을 테스트하는 것을 좋아합니다 .다시 테스트하십시오." 당신이 말하는 것은 의미가 있지만, 여전히 해결책을 찾아야합니다. –

+0

아니요, '
' –

+0



을 논의하지 않겠습니다.
은 괜찮습니다. http://stackoverflow.com/questions/1946426/html-5-is-it-br-br-or-br –