如何使js在通过ajax加载的文档中可用? (用纯js)

时间:2014-09-15 05:22:59

标签: 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).innerHTML=xhr.responseText;
            }
    }
    xhr.open('GET',doc,true);
    xhr.send();
}

如您所见,它是纯粹的js代码。不要使用jquery。我在这里看到了一些解决方案,它们都使用了jquery ..(例如:success {js code})

但我想用纯js代码解决问题。

我该怎么做?

1 个答案:

答案 0 :(得分:0)

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

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

xhr = new XMLHttpRequest()

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

xhr = document.implementation.createDocument("","",null);

因此,您需要考虑这些因素,如果您想要异步或同步加载文件,那么情况会更糟。

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