我使用以下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调用也可能是异步的。
答案 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;