作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这是代码。我对 JavaScript 还很陌生,而且每天都在学习更多东西。该代码来自教科书的示例。谢谢你的回复。我想问的另一个问题是如何在无序列表中显示返回的文本?这是要包含在 html 方面的内容还是可以在 JavaScript 文件中完成?
window.addEventListener("load",initAll,false);
var xhr = false;
function initAll() {
document.getElementById("makeTextRequest").addEventListener("click",getNewFile,false);
document.getElementById("makeXMLRequest").addEventListener("click",getNewFile,false);
}
function getNewFile(evt) {
makeRequest(this.href);
evt.preventDefault();
}
function makeRequest(url) {
if (window.XMLHttpRequest) {
xhr = new XMLHttpRequest();
}
else {
if (window.ActiveXObject) {
try {
xhr = new ActiveXObject("Microsoft.XMLHTTP");
}
catch (e) {
}
}
}
if (xhr) {
xhr.addEventListener("readystatechange",showContents,false);
xhr.open("GET", url, true);
xhr.send(null);
}
else {
document.getElementById("updateArea").innerHTML = "Sorry, but I couldn't create an XMLHttpRequest";
}
}
function showContents() {
if (xhr.readyState == 4) {
if (xhr.status == 200) {
if (xhr.responseXML && xhr.responseXML.childNodes.length > 0) {
var outMsg = getText(xhr.responseXML.getElementsByTagName("choices")[0]);
}
else {
var outMsg = xhr.responseText;
}
}
else {
var outMsg = "There was a problem with the request " + xhr.status;
}
document.getElementById("updateArea").innerHTML = outMsg;
}
function getText(inVal) {
if (inVal.textContent) {
return inVal.textContent;
}
return inVal.text;
}
}
最佳答案
从表面上看,您正在发出 AJAX 请求并接收 XML。
在这种情况下,我会:
window.open()
打开一个新页面(返回一个新的 Window 对象)document.body.innerHTML
更改为您拥有的 XML如果您有一个包含 XML 的网页(也许您请求的服务器有一个),您可以这样做:
window.open("page.xml");
关于javascript - 如何在新窗口/选项卡中打开文本和 xml 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27306747/
我是一名优秀的程序员,十分优秀!