现在有以下①②代码,但是问题在于调用myDemo.js后,后端会返回一个XML页面,想请问一下改如何通过②代码来调用这个XML页面的数据并获取其中的某个参数呢?
在网上查了很多信息,困扰了好多天,但是都没有查到具体的做法,第一次做这个内容,望大神们指点一下,非常感谢!
①这是myDemo.js,通过myDemo.html调用。
function post() {
var url = "http://XX.XXX.XX.XXX:XXXXX/meeting/remoteServlet?funcName=getConf";
url += "&userId=1";
url += "&userName=admin";
url += "&conferenceName=HuiYi";
url += "&confPassword=1234";
url += "&attendees=";
url += "&emails=";
url += "&attendeeUserIds=";
url += "&token=";
url += "&timeZoneOffset=-480";
url += "&duration=";
url += "&startTime=";
url += "&openType=0";
url += "&joinBeforeTime=15";
url += "&maxAmount=4";
url += "&conferencePattern=1";
url += "&siteId=1";
url += "&language=zh_CN";
url += "&&confType=1";
window.location = url;
};
②这是搜索查到的JS调用XML页面的方法
<script>
// 加载xml文档
var loadXML = function (xmlFile) {
var xmlDoc;
if (window.ActiveXObject) {
xmlDoc = new ActiveXObject('Microsoft.XMLDOM');//IE浏览器
xmlDoc.async = false;
xmlDoc.load(xmlFile);
}
else if (isFirefox=navigator.userAgent.indexOf("Firefox")>0) { //火狐浏览器
//else if (document.implementation && document.implementation.createDocument) {//这里主要是对谷歌浏览器进行处理
xmlDoc = document.implementation.createDocument('', '', null);
xmlDoc.load(xmlFile);
}
else{ //谷歌浏览器
var xmlhttp = new window.XMLHttpRequest();
xmlhttp.open("GET",xmlFile,false);
xmlhttp.send(null);
if(xmlhttp.readyState == 4){
xmlDoc = xmlhttp.responseXML.documentElement;
}
}
return xmlDoc;
}
// 首先对xml对象进行判断
var checkXMLDocObj = function (xmlFile) {
var xmlDoc = loadXML(xmlFile);
if (xmlDoc == null) {
alert('您的浏览器不支持xml文件读取,于是本页面禁止您的操作,推荐使用IE5.0以上可以解决此问题!');
window.location.href = '../err.html';
}
return xmlDoc;
}
</script>
2、将读取到的xml文件中的数据显示到html文档上
<script type="text/javascript" language="javascript">
var xmlDoc = checkXMLDocObj('../openClass.xml');//读取到xml文件中的数据
var a = document.getElementsByTagName("a");//获取所有的A标签
$(document).ready(function () {
var nodes;
if($.browser.msie){ // 注意各个浏览器之间的区别
nodes = xmlDoc.getElementsByTagName('collage')[0].childNodes; //读取XML文件中需要显示的数据
}
else if (isFirefox=navigator.userAgent.indexOf("Firefox")>0){
nodes = xmlDoc.getElementsByTagName('collage')[0].children; //读取XML文件中需要显示的数据
}
else{
nodes = xmlDoc.getElementsByTagName('resource');
}
for (var i = 0; i < a.length; i++) {
if (a[i].parentNode.nodeName == "SPAN") {
for (var j = 0; j < nodes.length; j++) {
var resource = nodes[j];
var url = resource.getAttribute('url');
var href=$(a[i]).attr("href");
if (href == url) {
var count = resource.getAttribute('click');
var span = document.createElement("div");
var str = document.createTextNode("点击率:" + count);
span.appendChild(str);
var div = a[i].parentNode.parentNode;
div.appendChild(span);
break;
}
}
}
}
});
$(function(){ //通过get请求,将点击率增加
$(a).mousedown(function(){
var href = $(this).attr("href");
$.get("../receive.ashx",{url:href,rd:Math.random()}, function (msg) {
});
})
})
</script>