话说这些天都在忙着编写桂电在线网络直播所用的页面代码,而又因为自己的机子上没装任何数据库,又不能在桂电在线服务器的数据库上测试,这两年学习PHP+MySQL,对于ASP生疏了不少,ASP.NET又不用,PHP对于来讲不是主流,也没有配置相关运行环境,所以就采用了javascript+xml的方式写了。
在网上查找了许多关于javascript加载XML文档的文章,但几乎都遇到了同一个问题,那就是对非IE浏览器的兼容问题。于是在总结前人的方法后,折腾了半个多小时,终于弄出了兼容IE/FF/CHORME/OPERA的JS代码,在此记之,待后查。
// 加载xml文档,兼容IE/FF/CHROME
loadXML = function(fileRoute) {
xmlDoc = null;
if (window.ActiveXObject) {
var xmlDom = new ActiveXObject("Microsoft.XMLDOM");
xmlDom.async = false;
xmlDom.preserveWhiteSpace = true;
xmlDom.load(fileRoute);
xmlDoc = xmlDom.documentElement;
}
else if (document.implementation && document.implementation.createDocument) {
var xmlhttp = new window.XMLHttpRequest();
xmlhttp.open("GET", fileRoute, false);
xmlhttp.send(null);
xmlDoc = xmlhttp.responseXML.documentElement;
}
else { xmlDoc = null; }
return xmlDoc;
}
//对xml对象进行判断
checkXMLDocObj = function(xmlFile)
{
var xmlDoc = loadXML(xmlFile);
if(xmlDoc==null)
{
alert(‘您的浏览器不支持xml文件读取,请您更改浏览器设置或者升级您的浏览器后再刷新本页!’);
}
return xmlDoc;
}
另外,在对XML文档进行节点选取时使用seleteNodes方法不兼容非IE浏览器,推荐使用getElementsByTagName()方法。总之,在使用javascript对XML文件进行操作时请事先学习各浏览器相互不兼容的语法区别,尽量避免即可。
跨域吗?
怎么说呢,你的这个代码还是ajax组件,因为同源策略的关系在ff chrome这些浏览器是无法成功的,目前想完美跨域交换数据必须使用flash.
木子小鱼 回复:
五月 5th, 2010 at 22:34
我也只是拿来主义而已,毕竟我是一个学经济管理的,技术不是我的本行~其实我一般不管它是属于哪种类型的,只要管用通用就是最好的~呵呵~