将AJAX响应加载到浏览器中(不使用jQuery)

时间:2016-01-11 16:20:55

标签: javascript html ajax internet-explorer-8

我使用以下JS代码加载远程页面:

function SendCustomRequest() {
    var request = new XMLHttpRequest(); 
    request.open("GET", "/test.html", false);
    request.send(null);
    alert(request.responseText);
}

此工作正常,test.html的HTML内容显示在警告消息框中。

现在我需要在浏览器窗口中显示整个test.html页面,但没有jQuery。原始页面中没有div左右(发生AJAX调用的地方),但该页面必须完全被test.html的内容替换。它必须在IE8中工作。

有什么想法吗?

PS:如果需要,AJAX调用也可能是异步的。

3 个答案:

答案 0 :(得分:0)

  

该页面必须完全替换为var typeAs = data.filter(function(f) { return f.[type A] === 'A'; });

的内容

test.html设为document.documentElement.outerHTML

request.responseText

答案 1 :(得分:0)

  

该页面必须完全替换为test.html的内容

我认为这不是一个好主意(因为我知道在某些浏览器中这是不可能的)。

您可以打开新窗口,然后将test.html的内容放在那里。

function SendCustomRequest() {
    var request = new XMLHttpRequest(); 
    request.open("GET", "/test.html", false);
    request.send(null);

    var newWindow = window.open("");
    newWindow.document.write(request.responseText);
}

查看MSDN's article 以了解如何设置窗口选项。

同时检查{{3}}

答案 2 :(得分:0)

您说" ...但该页面必须完全替换为test.html的内容 " 如果我完全接受您的陈述,则表示必须替换页面的所有内容

页面的某些部分应该更新时,AJAX才有意义。

如果应替换整页,则直接发出GET请求是合适的。

所以我建议不要在这种情况下使用AJAX。 您为AJAX调用提供的URL(加参数)可以在脚本中被绑定到 window.location.href 。然后,浏览器将直接发出相应的GET请求并自动更新整个页面。

请参阅以下示例:



function getNewPage(url,parameters) {
   alert("Issueing the GET request: "+url+"?"+parameters);
   window.location.href = url + "?" + parameters;
}

function doOnload() {
   getNewPage("http://www.example.com/test.html","par1=val1&par2=val2");
}

<body onload="doOnload(); return false;">
   <p>Some dummy text</p>
</body>
&#13;
&#13;
&#13;