`
lwp11411
  • 浏览: 22055 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论
阅读更多

首先是判定浏览器的类型和版本的js:

var sUserAgent = navigator.userAgent;
var fAppVersion = parseFloat(navigator.appVersion);

function compareVersions(sVersion1, sVersion2) {

   
var arrVersion1 = sVersion1.split(".");
   
var arrVersion2 = sVersion2.split(".");
   
   
if (arrVersion1.length > arrVersion2.length) {
       
for (var i=0; i < arrVersion1.length - arrVersion2.length; i++) {
            arrVersion2.push(
"0");
        }
    }
else if (arrVersion1.length < arrVersion2.length) {
       
for (var i=0; i < arrVersion2.length - arrVersion1.length; i++) {
            arrVersion1.push(
"0");
        }   
    }
   
   
for (var i=0; i < arrVersion1.length; i++) {

       
if (arrVersion1[i] < arrVersion2[i]) {
           
return -1;
        }
else if (arrVersion1[i] > arrVersion2[i]) {
           
return 1;
        }   
    }
   
   
return 0;

}

var isOpera = sUserAgent.indexOf("Opera") > -1;
var isMinOpera4 = isMinOpera5 = isMinOpera6 = isMinOpera7 = isMinOpera7_5 = false;

if (isOpera) {
   
var fOperaVersion;
   
if(navigator.appName == "Opera") {
        fOperaVersion
= fAppVersion;
    }
else {
       
var reOperaVersion = new RegExp("Opera (\\d+\\.\\d+)");
        reOperaVersion.test(sUserAgent);
        fOperaVersion
= parseFloat(RegExp["$1"]);
    }

    isMinOpera4
= fOperaVersion >= 4;
    isMinOpera5
= fOperaVersion >= 5;
    isMinOpera6
= fOperaVersion >= 6;
    isMinOpera7
= fOperaVersion >= 7;
    isMinOpera7_5
= fOperaVersion >= 7.5;
}

var isKHTML = sUserAgent.indexOf("KHTML") > -1
             
|| sUserAgent.indexOf("Konqueror") > -1
             
|| sUserAgent.indexOf("AppleWebKit") > -1;
             
var isMinSafari1 = isMinSafari1_2 = false;
var isMinKonq2_2 = isMinKonq3 = isMinKonq3_1 = isMinKonq3_2 = false;

if (isKHTML) {
    isSafari
= sUserAgent.indexOf("AppleWebKit") > -1;
    isKonq
= sUserAgent.indexOf("Konqueror") > -1;

   
if (isSafari) {
       
var reAppleWebKit = new RegExp("AppleWebKit\\/(\\d+(?:\\.\\d*)?)");
        reAppleWebKit.test(sUserAgent);
       
var fAppleWebKitVersion = parseFloat(RegExp["$1"]);

        isMinSafari1
= fAppleWebKitVersion >= 85;
        isMinSafari1_2
= fAppleWebKitVersion >= 124;
    }
else if (isKonq) {

       
var reKonq = new RegExp("Konqueror\\/(\\d+(?:\\.\\d+(?:\\.\\d)?)?)");
        reKonq.test(sUserAgent);
        isMinKonq2_2
= compareVersions(RegExp["$1"], "2.2") >= 0;
        isMinKonq3
= compareVersions(RegExp["$1"], "3.0") >= 0;
        isMinKonq3_1
= compareVersions(RegExp["$1"], "3.1") >= 0;
        isMinKonq3_2
= compareVersions(RegExp["$1"], "3.2") >= 0;
    }
   
}

var isIE = sUserAgent.indexOf("compatible") > -1
          
&& sUserAgent.indexOf("MSIE") > -1
          
&& !isOpera;
          
var isMinIE4 = isMinIE5 = isMinIE5_5 = isMinIE6 = false;

if (isIE) {
   
var reIE = new RegExp("MSIE (\\d+\\.\\d+);");
    reIE.test(sUserAgent);
   
var fIEVersion = parseFloat(RegExp["$1"]);

    isMinIE4
= fIEVersion >= 4;
    isMinIE5
= fIEVersion >= 5;
    isMinIE5_5
= fIEVersion >= 5.5;
    isMinIE6
= fIEVersion >= 6.0;
}

var isMoz = sUserAgent.indexOf("Gecko") > -1
           
&& !isKHTML;
           
var isMinMoz1 = sMinMoz1_4 = isMinMoz1_5 = false;

if (isMoz) {
   
var reMoz = new RegExp("rv:(\\d+\\.\\d+(?:\\.\\d+)?)");
    reMoz.test(sUserAgent);
    isMinMoz1
= compareVersions(RegExp["$1"], "1.0") >= 0;
    isMinMoz1_4
= compareVersions(RegExp["$1"], "1.4") >= 0;
    isMinMoz1_5
= compareVersions(RegExp["$1"], "1.5") >= 0;
}

var isNS4 = !isIE && !isOpera && !isMoz && !isKHTML
           
&& (sUserAgent.indexOf("Mozilla") == 0)
           
&& (navigator.appName == "Netscape")
           
&& (fAppVersion >= 4.0 && fAppVersion < 5.0);

var isMinNS4 = isMinNS4_5 = isMinNS4_7 = isMinNS4_8 = false;

if (isNS4) {
    isMinNS4
= true;
    isMinNS4_5
= fAppVersion >= 4.5;
    isMinNS4_7
= fAppVersion >= 4.7;
    isMinNS4_8
= fAppVersion >= 4.8;
}

var isWin = (navigator.platform == "Win32") || (navigator.platform == "Windows");
var isMac = (navigator.platform == "Mac68K") || (navigator.platform == "MacPPC")
           
|| (navigator.platform == "Macintosh");

var isUnix = (navigator.platform == "X11") && !isWin && !isMac;

var isWin95 = isWin98 = isWinNT4 = isWin2K = isWinME = isWinXP = false;
var isMac68K = isMacPPC = false;
var isSunOS = isMinSunOS4 = isMinSunOS5 = isMinSunOS5_5 = false;

if (isWin) {
    isWin95
= sUserAgent.indexOf("Win95") > -1
             
|| sUserAgent.indexOf("Windows 95") > -1;
    isWin98
= sUserAgent.indexOf("Win98") > -1
             
|| sUserAgent.indexOf("Windows 98") > -1;
    isWinME
= sUserAgent.indexOf("Win 9x 4.90") > -1
             
|| sUserAgent.indexOf("Windows ME") > -1;
    isWin2K
= sUserAgent.indexOf("Windows NT 5.0") > -1
             
|| sUserAgent.indexOf("Windows 2000") > -1;
    isWinXP
= sUserAgent.indexOf("Windows NT 5.1") > -1
             
|| sUserAgent.indexOf("Windows XP") > -1;
    isWinNT4
= sUserAgent.indexOf("WinNT") > -1
             
|| sUserAgent.indexOf("Windows NT") > -1
             
|| sUserAgent.indexOf("WinNT4.0") > -1
             
|| sUserAgent.indexOf("Windows NT 4.0") > -1
             
&& (!isWinME && !isWin2K && !isWinXP);
}

if (isMac) {
    isMac68K
= sUserAgent.indexOf("Mac_68000") > -1
              
|| sUserAgent.indexOf("68K") > -1;
    isMacPPC
= sUserAgent.indexOf("Mac_PowerPC") > -1
              
|| sUserAgent.indexOf("PPC") > -1
}

if (isUnix) {
    isSunOS
= sUserAgent.indexOf("SunOS") > -1;

   
if (isSunOS) {
       
var reSunOS = new RegExp("SunOS (\\d+\\.\\d+(?:\\.\\d+)?)");
        reSunOS.test(sUserAgent);
        isMinSunOS4
= compareVersions(RegExp["$1"], "4.0") >= 0;
        isMinSunOS5
= compareVersions(RegExp["$1"], "5.0") >= 0;
        isMinSunOS5_5
= compareVersions(RegExp["$1"], "5.5") >= 0;
    }
}

然后是实现跨浏览器加载XML文件的js

function XmlDom() {
   
if (window.ActiveXObject) {
       
var arrSignatures = ["MSXML2.DOMDocument.5.0", "MSXML2.DOMDocument.4.0",
                            
"MSXML2.DOMDocument.3.0", "MSXML2.DOMDocument",
                            
"Microsoft.XmlDom"];
                        
       
for (var i=0; i < arrSignatures.length; i++) {
           
try {
       
               
var oXmlDom = new ActiveXObject(arrSignatures[i]);
           
               
return oXmlDom;
       
            }
catch (oError) {
               
//ignore
            }
        }         

       
throw new Error("MSXML is not installed on your system.");
             
    }
else if (document.implementation && document.implementation.createDocument) {
       
       
var oXmlDom = document.implementation.createDocument("","",null);

        oXmlDom.parseError
= {
            valueOf:
function () { return this.errorCode; },
            toString:
function () { return this.errorCode.toString() }
        };
       
        oXmlDom.__initError__();
               
        oXmlDom.addEventListener(
"load", function () {
           
this.__checkForErrors__();
           
this.__changeReadyState__(4);
        },
false);

       
return oXmlDom;       
       
    }
else {
       
throw new Error("Your browser doesn't support an XML DOM object.");
    }
}

if (isMoz) {

    Document.prototype.readyState
= 0;
    Document.prototype.onreadystatechange
= null;

    Document.prototype.__changeReadyState__
= function (iReadyState) {
       
//this.readyState = iReadyState;

       
if (typeof this.onreadystatechange == "function") {
           
this.onreadystatechange();
        }
    };

    Document.prototype.__initError__
= function () {
       
this.parseError.errorCode = 0;
       
this.parseError.filepos = -1;
       
this.parseError.line = -1;
       
this.parseError.linepos = -1;
       
this.parseError.reason = null;
       
this.parseError.srcText = null;
       
this.parseError.url = null;
    };
   
    Document.prototype.__checkForErrors__
= function () {

       
if (this.documentElement.tagName == "parsererror") {

           
var reError = />([\s\S]*?)Location:([\s\S]*?)Line Number (\d+), Column (\d+):<sourcetext>([\s\S]*?)(?:\-*\^)/;

            reError.test(
this.xml);
           
           
this.parseError.errorCode = -999999;
           
this.parseError.reason = RegExp.$1;
           
this.parseError.url = RegExp.$2;
           
this.parseError.line = parseInt(RegExp.$3);
           
this.parseError.linepos = parseInt(RegExp.$4);
           
this.parseError.srcText = RegExp.$5;
        }
    };
   
       
    Document.prototype.loadXML
= function (sXml) {
   
       
this.__initError__();
   
       
this.__changeReadyState__(1);
   
       
var oParser = new DOMParser();
       
var oXmlDom = oParser.parseFromString(sXml, "text/xml");

       
while (this.firstChild) {
           
this.removeChild(this.firstChild);
        }

       
for (var i=0; i < oXmlDom.childNodes.length; i++) {
           
var oNewNode = this.importNode(oXmlDom.childNodes[i], true);
           
this.appendChild(oNewNode);
        }
       
       
this.__checkForErrors__();
       
       
this.__changeReadyState__(4);

    };
   
    Document.prototype.__load__
= Document.prototype.load;

    Document.prototype.load
= function (sURL) {
       
this.__initError__();
       
this.__changeReadyState__(1);
       
this.__load__(sURL);
    };
   
    Node.prototype.__defineGetter__(
"xml", function () {
       
var oSerializer = new XMLSerializer();
       
return oSerializer.serializeToString(this, "text/xml");
    });

}

然后是xml的操作js

/**
* @author Administrator
*/
function XMLOperater(a){
   
var xDoc = new XmlDom();
    xDoc.async
= false;
   
var b = xDoc.load(a);
   
if(!b){
       
return;
    }
   
var p = getChildNodeByTagName(xDoc,"root的名字");
   
if(!p){
       
return;
    }
   
this.attr= getAttribute(p,"root的属性");
    n
= getChildNodeByTagName(p,"root下的节点");
   
if(n){
       
this.gridsize = getAttribute(n,"root下节点的属性");
    }
  
<span s
分享到:
评论

相关推荐

    xml操作xml操作xml操作xml操作xml操作

    这里提到的"xml操作xml操作xml操作xml操作xml操作"显然是指对XML文档进行读取、修改和创建的操作。 在给定的示例中,首先加载XML文档到`XmlDocument`对象,这是.NET框架中用于处理XML的标准类。通过`XmlDocument`的...

    基于tinyxml2的xml操作库再封装

    总结来说,"基于tinyxml2的xml操作库再封装"项目为C++开发者提供了一个高效、易用的XML处理工具,通过优化和扩展tinyxml2的功能,使得XML数据的处理变得更加直观和便捷。这将极大地提高开发效率,降低开发成本,尤其...

    基于QT封装的XML操作,显示类

    **基于QT封装的XML操作与显示类** 在软件开发中,XML(eXtensible Markup Language)作为一种数据交换和存储格式,广泛应用于不同系统间的数据交互。QT作为一个跨平台的C++图形用户界面应用程序框架,提供了对XML的...

    c#xml操作类

    本篇文章将深入探讨如何在C#中进行XML操作,主要基于提供的"XML操作类"的压缩包文件。 首先,XML操作类通常包含了读取、写入、解析和修改XML文档的一系列方法。在C#中,我们可以利用System.Xml命名空间下的类来实现...

    xml操作,内含源码

    以下是一些关于XML操作的关键知识点: 1. **XML基本结构**: - XML文档由元素(Element)组成,元素是XML的最基本单位,可以包含其他元素或文本。 - 元素以尖括号 `和 `&gt;` 包裹,如 `&lt;element&gt;`,并用 `/` 表示...

    java对xml操作的项目案例

    本项目案例“java对xml操作的项目案例”深入探讨了如何使用Java来读取、修改和写入XML文件。下面将详细阐述相关知识点。 一、Java与XML的交互 1. DOM解析器:Document Object Model (DOM) 是一种将整个XML文档加载...

    动态生成Rss文件 Xml操作 Xml文件的修改

    动态生成Rss文件 Xml操作 Xml文件的修改动态生成Rss文件 Xml操作 Xml文件的修改动态生成Rss文件 Xml操作 Xml文件的修改动态生成Rss文件 Xml操作 Xml文件的修改动态生成Rss文件 Xml操作 Xml文件的修改动态生成Rss文件...

    asp.net操作xml 操作大全

    在提供的源码文件“Asp[1].net+操作XML+源码.rar”中,可能包含了具体的ASP.NET XML操作示例,包括如何创建XML文件、读取XML文件、更新XML节点以及删除XML节点的代码片段。而“WebSite2”可能是包含一个完整的Web...

    c++的xml操作类

    tinyxml,很好用的xml操作类,c++版,删除了乱七八糟的工程文件,用时include一下两个头文件即可。具体使用方法参考:http://blog.csdn.net/zhangrentian/archive/2010/01/15/5194875.aspx

    XML操作类(完整)

    XML操作类(完整)使用于C#领域,更好的操作XML文件

    c# 下xml操作类

    c#下操作xml文件类,方便调用操作。 xml操作日趋常见,xml格式相对规范,通过xml存储信息更加方法,采用该类可以方便操作。

    C# XML操作类库(加强版)

    最近做项目,要用C#写,而且数据格式是那种节点套节点能把人套死的XML,看着都觉得晕,而且节点跳跃性很大,真心觉得单纯用环境自带的XMLDocument类完全达不到自己的需要,因为XML里面涉及到节点循环,循环里面又套...

    Xml操作类(C#)

    Xml操作类,项目中使用的,包含读取数据、插入数据、修改数据、删除数据 附带使用方法。

    xml教程(增删改)xml教程 xml xml操作教程 xml读取-程序员百味www.bywei.cn

    xml教程(增删改)xml教程 xml xml操作教程 xml读取-程序员百味www.bywei.cnxml教程(增删改)xml教程 xml xml操作教程 xml读取-程序员百味www.bywei.cnxml教程(增删改)xml教程 xml xml操作教程 xml读取-程序员百...

    xml操作类,xml操作类

    xml的所有操作.xml的所有操作.xml的所有操作.xml的所有操作.

    XML操作类XML操作类XML操作类

    XML操作类XML操作类XML操作类XML操作类XML操作类XML操作类XML操作类XML操作类

    xml操作C#源码

    该代码主要实现了根据xml中定义的扩展字段Expand动态生成textbox,填写后更新xml的一个源码,包括xml的增删改查功能。算是比较全的一个xml操作源码了。主要是为了公司项目做的可行性研究,欢迎交流分享。

    asp.net 用xml操作word asp.net 用xml操作word

    asp.net 用xml操作wordasp.net 用xml操作wordasp.net 用xml操作wordasp.net 用xml操作wordasp.net 用xml操作wordasp.net 用xml操作wordasp.net 用xml操作wordasp.net 用xml操作wordasp.net 用xml操作wordasp.net 用...

    C#winform xml操作详解

    2. **C#中的XML操作库**:在C#中,我们主要使用System.Xml命名空间中的类来处理XML。主要包括XmlDocument、XmlNode、XmlElement等。XmlDocument是整个XML文档的容器,XmlNode是所有XML节点的基类,XmlElement表示...

    XML 操作及 源码

    以上就是关于XML操作的基本介绍,通过C#的`XmlDocument`、`XmlWriter`、`XmlNode`以及`DataSet`等类,我们可以方便地实现XML的读取、写入、更新和删除。理解这些概念和用法,将有助于在实际开发中更好地处理和利用...

Global site tag (gtag.js) - Google Analytics