2014-01-09 2 views
0

'div'안에 txt 파일의 내용을 표시하고 싶습니다. 따라서 버튼을 사용하여 내 함수를 호출하지만 버튼을 누르지 않아도 함수가 트리거됩니다.아약스가 잘 작동하지 않는 AddeventListener

<body> 
<form> 
    <input id="showF" type="button" value= "Show File" /> 
</form> 

<div id="contaniner" style="background-color:#99FF66;"> 
<p>It will show the txt content</p> 
</div> 

</body> 

그리고 내 JS 코드 :

window.onload=function(){ 
    document.getElementById("showF").addEventListener("click",sacardatos('P1.txt','container'),false); 
} 

function sacardatos(data, idDiv){ 
    var XMLHttpRequestObject = false; 
if (window.XMLHttpRequest) { 
    XMLHttpRequestObject = new XMLHttpRequest(); 
} else if (window.ActiveXObject) { 
    XMLHttpRequestObject = new ActiveXObject("Microsoft.XMLHTTP"); 
} 

    if(XMLHttpRequestObject) { 
     var objeto = document.getElementById(idDiv); 
     XMLHttpRequestObject.open("GET", data); 
     XMLHttpRequestObject.onreadystatechange = function(){ 
      if (XMLHttpRequestObject.readyState == 4 && XMLHttpRequestObject.status == 200) { 
       objeto.innerHTML = XMLHttpRequestObject.responseText; 
     } 
    } 
    XMLHttpRequestObject.send(null); 
} 
} 

답변

2

addEventListener에 두 번째 인수는 함수이어야한다. 함수를 전달하지 않고 함수를 즉시 호출하고 결과를 전달합니다. 변경 대상 :

document.getElementById("showF").addEventListener("click", function() { 
    sacardatos('P1.txt','container'); 
}, false); 
+0

감사합니다. 해결 됐어! :디 – Doruko

1

당신은 익명 메소드로 전달하는 대신 함수를 호출 여기에 내 HTML 코드입니다.

window.onload=function(){ 
    document.getElementById("showF").addEventListener("click" , function(){ 
     sacardatos('P1.txt','container'); 
    },false); 
} 
관련 문제