Javascript 和 XML 按钮

标签 javascript html xml dom

您好,我已经通过 html 创建了一个按钮,我正试图在单击该按钮时显示一个 XML 页面。我需要通过 javascript 执行此操作,但它似乎对我不起作用。

我的 HTML:

<input type="button" value="Shop 1" id ="one">
<input type="button" value="Shop 2" id ="two">
<input type="button" value="Put Selected Pictures in Cart" id ="three">

我的 JavaScript:

 function getData(filename) { env = new XMLHttpRequest(); env.open("GET",            filename); } 

 function init()
{

 document.getElementById('one').onclick = function(){ getData('shop1.xml'); }
 document.getElementById('two').onclick = function(){ getData('shop2.xml'); }
}

如有任何帮助,我们将不胜感激。谢谢。

最佳答案

由于 XMLHttprequests 的本质是异步的,您应该在回调函数中处理检索到的数据(或者您可以通过指定 env.open("GET",url, true) 使其同步)。您的新 getData 函数将如下所示:

function getData(url, callback) { 
  var env = new XMLHttpRequest(); 
  env.onload = function() {
    callback(env.response);
  };
  env.open("GET", url); 
}

您可以按如下方式使用它:

var one = document.getElementById('one'),
    two = document.getElementById('two');

one.onclick = function(){
  getData('shop1.xml', function(response) { 
     /* do whatever you want with the response XML */ 
  });
}
two.onclick = function(){
  getData('shop2.xml', function(response) { 
     /* do whatever you want with the response XML */ 
  });
}

参见 MDN: Using XMLHttpRequest获取更多信息。请注意,这只会将 XMLdoc 作为字符串获取;如果您需要将其作为 XML 树遍历,则需要使用 DOMParser API .

关于Javascript 和 XML 按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33507615/

相关文章:

iphone - 如何将新项目附加到 plist?

javascript - 在 jquery 中编写一个函数来滚动到屏幕上的特定 div?

html - Hubspot 电子邮件模板在 Gmail 应用程序中没有响应

javascript - 不是将 MySQL 数据从表格显示到 HTML 表格中,而是将其显示在可编辑的文本框上

html - 移动设备上的文本样式行高不起作用(WordPress)

xml - 用于根据当前节点的内容选择父节点的XPath?

java - Java中的XML文件读取

javascript - 是否可以使用 jquery 或 javascript 将自动增量类添加到列表中

javascript - 更改onclick事件

javascript - 如何强制React组件删除后重新渲染