2010-06-20 1 views
2

저는 방금 Javascript를 배우기 시작했습니다. 나는 "Hello World!"를 원한다. 사용자가 버튼을 클릭하면 웹 페이지에 기록됩니다. 나는 이것을 시도 :이 자바 스크립트 코드가 웹 페이지에 쓰지 않는 이유는 무엇입니까?

<html> 
<head> 
<script type="text/javascript"> 
function displaymessage() 
{ 
document.write("Hello World!"); 
} 
</script> 
</head> 

<body> 
<form> 
<input type="button" value="Click me!" onclick="displaymessage()" /> 
</form> 
</body> 
</html> 

나는 그것이 window.alert("Hello World!") 할 수 있지만, 어떤 이유로 document.write("Hello World!") 할 수 없습니다. 버튼이 사라지고 텍스트가 표시되지 않습니다. 내 생각 엔 문제는 document.write에 있지만 그 문제를 해결하는 방법을 모르겠습니다. 어떤 제안?

+0

어떤 브라우저를 사용하고 있습니까? – Anurag

+0

#thryle, FF 3.6에서 작동합니다. – Starx

+0

생각해보십시오. Document.write를 사용하면 효과적으로 페이지가 변경됩니다. HTML은 동적이 아니므로 모든 것이 다시로드되어야합니다. –

답변

5

해당 시점에 문서가 이미 작성되었으므로 다음과 같이 텍스트를 설정할 수 있습니다.

<button id="lol">blah</button> 
<script> 
    function setText(obj, to) { 
     obj.textContent? obj.textContent = to : obj.innerText = to; 
    } 
    var lol = document.getElementById('lol') 

    lol.onclick = function() { 
     var p = document.createElement('p'); 
     document.body.appendChild(p); 
     setText(p, 'hi'); 
    } 
</script> 

자주 사용되는 다른 기술은 innerHTML입니다.

+0

어떻게하면 새 문서를 만들 수 있습니까? –

+3

그렇지 않습니다. 새로운 텍스트 노드 및 요소를 작성하거나 기존 텍스트 노드 및 요소를 변경하는 것과 같은 대체 방법을 사용합니다. –

+0

Thnx. 기회가 생기면 받아 들일거야. –

2

Document.write는 현재로드중인 HTML 파일에 쓰는 데 사용됩니다. 페이지가로드되고 사용자가 페이지와 상호 작용하기 시작하면 document.write는 쓸모가 없습니다.