日期:2014-05-16  浏览次数:20298 次

关于javascript读取xml文档并且兼容Mozilia 、chrome和IE浏览器

最近在学习javascript,在学习到文档对象模型的时候,学习了一下关于js读取xml的方法,期间ie很好解决,但是在ff和chrome下就不知如何解决了,网上查看资料后,果断的实践了一下,下面文件在读取xml实现了兼容ie/Firefox/chrome,但是在显示数据表的时候只有ie可以,希望看到的人不吝赐教。

jsp文件

-------------------------------------------------------------------------------------

<%@ page language="java"pageEncoding="gbk"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>测试js加载xml文件[支持IE/Mozlia/Chrome浏览器]</title>
<script type="text/javascript">
  function loadXML(xmlString){
  var agent = navigator.userAgent.toLowerCase();
        var xmlDoc=null;
        //支持IE浏览器 
       if(!(agent.indexOf("opera")>-1) && (agent.indexOf("msie") > -1)){   // 判断是否是非ie浏览器
            var xmlDomVersions = ['MSXML.2.DOMDocument.6.0','MSXML.2.DOMDocument.3.0','Microsoft.XMLDOM'];
            for(var i=0;i<xmlDomVersions.length;i++){
                try{
                    xmlDoc = new ActiveXObject(xmlDomVersions[i]);
                    xmlDoc.async = false;
                    xmlDoc.load(xmlString); //load方法载入xml字符串
                    break;
                }catch(e){}
            }
        }
        //Chrome浏览器  注:需要浏览器支持
      else if(agent.indexOf("chrome") > -1){ // 判断是否是非chrome浏览器
            try{
                var xmlhttp = new window.XMLHttpRequest();
        xmlhttp.open("GET",xmlString,false);
        xmlhttp.send(null);
        alert(xmlhttp.readyState);
        if(xmlhttp.readyState == 4){
        xmlDoc = xmlhttp.responseXML.documentElement;
        }
       
            }catch(e){
            alert("谷歌浏览器不支持该解析方式!");
            }
        }
        //支持Mozilla浏览器
        else if(!(agent.indexOf("chrome") > -1) 
        && !(/webkit|khtml/).test(agent) 
        && agent.indexOf("gecko")){       //判断是否是火狐浏览器
        try{
xmlDoc = document.implementation.createDocument("", "", null);
xmlDo