Javascript 如何使js在通过ajax加载的文档中起作用?(带纯js)
我的js代码无法处理通过ajax加载的文档 下面是ajax代码: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
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;};