javascript - 使用 ajax 的 Addeventlistener 效果不佳

标签 javascript html ajax

我想在“div”中显示一个 txt 文件的内容,所以我用一个按钮调用我的函数,但即使我不按下按钮,函数也会触发,这是我的 HTML 代码:

<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);
 }
}

最佳答案

addEventListener 的第二个参数应该是一个函数。您没有传递函数,而是立即调用函数并传递结果。更改为:

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

关于javascript - 使用 ajax 的 Addeventlistener 效果不佳,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21020769/

相关文章:

html - 是否可以像这样使用转换来移动此 div?

javascript - 如何在JS中检测div元素宽度何时发生变化(而不是窗口大小调整)?

javascript - 使用 JavaScript 代码生成 JSON 文件

javascript - 生成器的异常处理

javascript - Google Maps API,到地铁站的距离

asp.net-mvc - 如何获取Controller中ActionResult返回的html

javascript - 我适合哪个JavaScript框架?

javascript - 在媒体查询中调用/触发 Foundation JS

java - 去除 JSTL <c :forEach> 内的换行符

javascript - 拦截 XMLHttpRequest 并修改 responseText