<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    道非道 非常道

    勤思、謹言、慎行、厚積、薄發

    統計

    web

    天圓

    經濟 政治 軍事

    鍵康

    WebFX 的 Xml Extras 基本應用

         XML and XML HTTP request abstraction.
                 轉自:http://webfx.eae.net/dhtml/xmlextras/xmlextras.html。
    xmlextras.js
      1 //<script>
      2 //////////////////
      3 // Helper Stuff //
      4 //////////////////
      5 
      6 // used to find the Automation server name
      7 function getDomDocumentPrefix() {
      8     if (getDomDocumentPrefix.prefix)
      9         return getDomDocumentPrefix.prefix;
     10 
     11     var prefixes = ["MSXML2""Microsoft""MSXML""MSXML3"];
     12     var o;
     13     for (var i = 0; i < prefixes.length; i++) {
     14         try {
     15             // try to create the objects
     16             o = new ActiveXObject(prefixes[i] + ".DomDocument");
     17             return getDomDocumentPrefix.prefix = prefixes[i];
     18         }
     19         catch (ex) {};
     20     }
     21 
     22     throw new Error("Could not find an installed XML parser");
     23 }
     24 
     25 function getXmlHttpPrefix() {
     26     if (getXmlHttpPrefix.prefix)
     27         return getXmlHttpPrefix.prefix;
     28 
     29     var prefixes = ["MSXML2""Microsoft""MSXML""MSXML3"];
     30     var o;
     31     for (var i = 0; i < prefixes.length; i++) {
     32         try {
     33             // try to create the objects
     34             o = new ActiveXObject(prefixes[i] + ".XmlHttp");
     35             return getXmlHttpPrefix.prefix = prefixes[i];
     36         }
     37         catch (ex) {};
     38     }
     39 
     40     throw new Error("Could not find an installed XML parser");
     41 }
     42 
     43 //////////////////////////
     44 // Start the Real stuff //
     45 //////////////////////////
     46 
     47 
     48 // XmlHttp factory
     49 function XmlHttp() {}
     50 
     51 XmlHttp.create = function () {
     52     try {
     53         if (window.XMLHttpRequest) {
     54             var req = new XMLHttpRequest();
     55 
     56             // some versions of Moz do not support the readyState property
     57             // and the onreadystate event so we patch it!
     58             if (req.readyState == null) {
     59                 req.readyState = 1;
     60                 req.addEventListener("load"function () {
     61                     req.readyState = 4;
     62                     if (typeof req.onreadystatechange == "function")
     63                         req.onreadystatechange();
     64                 }, false);
     65             }
     66 
     67             return req;
     68         }
     69         if (window.ActiveXObject) {
     70             return new ActiveXObject(getXmlHttpPrefix() + ".XmlHttp");
     71         }
     72     }
     73     catch (ex) {}
     74     // fell through
     75     throw new Error("Your browser does not support XmlHttp objects");
     76 };
     77 
     78 // XmlDocument factory
     79 function XmlDocument() {}
     80 
     81 XmlDocument.create = function () {
     82     try {
     83         // DOM2
     84         if (document.implementation && document.implementation.createDocument) {
     85             var doc = document.implementation.createDocument(""""null);
     86 
     87             // some versions of Moz do not support the readyState property
     88             // and the onreadystate event so we patch it!
     89             if (doc.readyState == null) {
     90                 doc.readyState = 1;
     91                 doc.addEventListener("load"function () {
     92                     doc.readyState = 4;
     93                     if (typeof doc.onreadystatechange == "function")
     94                         doc.onreadystatechange();
     95                 }, false);
     96             }
     97 
     98             return doc;
     99         }
    100         if (window.ActiveXObject)
    101             return new ActiveXObject(getDomDocumentPrefix() + ".DomDocument");
    102     }
    103     catch (ex) {}
    104     throw new Error("Your browser does not support XmlDocument objects");
    105 };
    106 
    107 // Create the loadXML method and xml getter for Mozilla
    108 if (window.DOMParser &&
    109     window.XMLSerializer &&
    110     window.Node && Node.prototype && Node.prototype.__defineGetter__) {
    111 
    112     // XMLDocument did not extend the Document interface in some versions
    113     // of Mozilla. Extend both!
    114     //XMLDocument.prototype.loadXML =
    115     Document.prototype.loadXML = function (s) {
    116 
    117         // parse the string to a new doc
    118         var doc2 = (new DOMParser()).parseFromString(s, "text/xml");
    119 
    120         // remove all initial children
    121         while (this.hasChildNodes())
    122             this.removeChild(this.lastChild);
    123 
    124         // insert and import nodes
    125         for (var i = 0; i < doc2.childNodes.length; i++) {
    126             this.appendChild(this.importNode(doc2.childNodes[i], true));
    127         }
    128     };
    129 
    130 
    131     /*
    132      * xml getter
    133      *
    134      * This serializes the DOM tree to an XML String
    135      *
    136      * Usage: var sXml = oNode.xml
    137      *
    138      */
    139     // XMLDocument did not extend the Document interface in some versions
    140     // of Mozilla. Extend both!
    141     /*
    142     XMLDocument.prototype.__defineGetter__("xml", function () {
    143         return (new XMLSerializer()).serializeToString(this);
    144     });
    145     */
    146     Document.prototype.__defineGetter__("xml"function () {
    147         return (new XMLSerializer()).serializeToString(this);
    148     });
    149 }

    加載  xml 文件
        使用異步加載
        
     1 function loadAsync(sUri) {
     2    var xmlHttp = XmlHttp.create();
     3    var async = true;
     4    xmlHttp.open("GET", sUri, async);
     5    xmlHttp.onreadystatechange = function () {
     6       if (xmlHttp.readyState == 4)
     7          doSomething(xmlHttp.responseXML); // responseXML : XmlDocument
     8    }
     9    xmlHttp.send(null);
    10 }
    11 
    12 
         使用syncronous的 XMLHTTP
    1 function loadSync(sUri) {
    2    var xmlHttp = XmlHttp.create();
    3    var async = false;
    4    xmlHttp.open("GET", sUri, async);
    5    xmlHttp.send(null);
    6    doSomething(xmlHttp.responseXML); // responseXML : XmlDocument
    7 }
    8 
    9 
         發送一個XML 文件
     1 function postAsync(sUri, xmlDoc) {
     2    var xmlHttp = XmlHttp.create();
     3    var async = true;
     4    xmlHttp.open("GET", sUri, async);
     5    xmlHttp.onreadystatechange = function () {
     6       if (xmlHttp.readyState == 4)
     7          doSomething(xmlHttp.responseXML); // responseXML : XmlDocument
     8    }
     9    xmlHttp.send(xmlDoc);
    10 }
    11 
          加載一個文本文件
    1 function loadTextSync(sUri) {
    2    var xmlHttp = XmlHttp.create();
    3    var async = false;
    4    xmlHttp.open("GET", sUri, async);
    5    xmlHttp.send(null);
    6    doSomething(xmlHttp.responseText); // responseText : String
    7 }
    8 
            使用XmlDocument
     1 var doc = XmlDocument.create();
     2 doc.loadXML( "<?xml version=\"1.0\" encoding=\"utf-8\"?>" +
     3    "<root>" +
     4       "<test name=\"Test 1\"/>" +
     5       "<test name=\"Test 2\"/>" +
     6    "</root>");
     7 
     8 var testEls = doc.getElementsByTagName("test");
     9 for (var i = 0; i < testEls.length; i++)
    10    alert(tests[i].getAttribute("name"));
    11 
          負載使用 XmlDocument
     1 function loadAsync2(sUri) {
     2    var doc = XmlDocument.create();
     3    doc.async = true;
     4    doc.onreadystatechange = function () {
     5       if (doc.readyState == 4)
     6          alert(doc.xml); // doc.xml : String
     7    }
     8    doc.load(sUri);
     9 }
    10 

     我都有些迷惑,如果可以大家一起討論一下。

    posted on 2009-07-03 13:44 星期五 閱讀(400) 評論(0)  編輯  收藏 所屬分類: WEB FX

    主站蜘蛛池模板: 日本免费的一级v一片| 91精品啪在线观看国产线免费| 久久精品女人天堂AV免费观看| 久久精品国产亚洲AV大全| 久久久免费的精品| 亚洲欧美aⅴ在线资源| 国产成人精品免费视频网页大全 | 国产精品免费看香蕉| 亚洲人成人无码.www石榴 | 男女猛烈无遮掩视频免费软件| 国产a级特黄的片子视频免费| 99亚洲男女激情在线观看| 免费观看国产精品| 一个人看www免费高清字幕| 国产∨亚洲V天堂无码久久久| 成人久久免费网站| 亚洲综合视频在线观看| 免费A级毛片无码免费视| 国产精品亚洲色图| 亚洲午夜未满十八勿入网站2| 男女午夜24式免费视频| 亚洲国产成人综合| 狼友av永久网站免费观看 | 亚洲网站在线免费观看| 亚洲国产美女精品久久久久| 免费高清小黄站在线观看| 特级毛片A级毛片100免费播放| 国产91免费视频| 亚洲国产日韩a在线播放| 亚洲国产精品人人做人人爱| 97无码人妻福利免费公开在线视频| 亚洲资源在线视频| 国产免费久久精品| 久久成人免费电影| 亚洲欧美一区二区三区日产| 亚洲区不卡顿区在线观看| 最近免费中文字幕大全免费| 精品成人一区二区三区免费视频| 亚洲日韩精品一区二区三区| 成年女人喷潮毛片免费播放| jizz免费在线观看|