Javascript 如何使js在通过ajax加载的文档中起作用?(带纯js)

Javascript 如何使js在通过ajax加载的文档中起作用?(带纯js),javascript,ajax,Javascript,Ajax,我的js代码无法处理通过ajax加载的文档 下面是ajax代码: var xhr; xhr = new XMLHttpRequest(); function xhrDocOpen(doc,placeID){ xhr.onreadystatechange=function(){ if(xhr.readyState==4 && xhr.status==200){ document.getElementById(placeID).in

我的js代码无法处理通过ajax加载的文档

下面是ajax代码:

var xhr;

xhr = new XMLHttpRequest();

function xhrDocOpen(doc,placeID){
    xhr.onreadystatechange=function(){
        if(xhr.readyState==4 && xhr.status==200){
            document.getElementById(placeID).innerHTML=xhr.responseText;
            }
    }
    xhr.open('GET',doc,true);
    xhr.send();
}
如您所见,这是纯js代码。不要使用jquery。我在这里看到了一些解决方案,它们都使用jquery..示例:success{js code}

但是我想用纯js代码来解决这个问题


如何做到这一点?

问题在于,在执行纯js时,并非所有浏览器都以相同的方式工作,而纯js实际上是jquery所做的事情之一,根据浏览器的不同,以不同的方式实现相同的功能

根据浏览器的不同,可以通过两种不同的方式创建用于加载文档的xhr:

xhr = new XMLHttpRequest()

xhr = new window.ActiveXObject("Microsoft.XMLDOM")

xhr = document.implementation.createDocument("","",null);
因此,您需要考虑这些因素,更糟糕的是,如果要异步或同步加载文件,则会有差异


此答案假设您希望从磁盘而不是Web服务器加载文件。但答案仍然是,根据浏览器的不同,至少有两种方法可以处理ajax请求。如果您不想在新浏览器版本出现时处理所有这些问题并进行更改,请使用jquery。

当您使用.innerHTML将html代码添加到站点时,xhr.responseText中的脚本不会被计算。您需要自己搜索这些脚本,例如,在您将html代码添加到页面中并在全局上下文:因此,您可以查看在innerHTML之后运行:[.slice.calldocument.getElementByIdplaceID.querySelectorAllscript.MapFunction{evala.textContent;};