<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 星期五 閱讀(404) 評論(0)  編輯  收藏 所屬分類: WEB FX

    主站蜘蛛池模板: 免费无遮挡无码永久在线观看视频| 日本免费xxxx色视频| 国产hs免费高清在线观看| 亚洲熟妇AV一区二区三区宅男| 免费大片黄在线观看yw| 亚洲va成无码人在线观看| 24小时日本在线www免费的| 国产精品亚洲午夜一区二区三区| 日本阿v免费费视频完整版| 亚洲精品福利你懂| 啦啦啦在线免费视频| 国产亚洲精品91| 亚洲人午夜射精精品日韩| 国产免费一区二区三区不卡| 亚洲AV无码一区东京热久久| 最近免费中文字幕大全免费版视频| 亚洲国产精品日韩在线观看| 成人毛片免费在线观看| 色视频在线观看免费| 亚洲乳大丰满中文字幕| 99国产精品免费视频观看| 亚洲卡一卡2卡三卡4麻豆| 国产免费观看a大片的网站| 99精品全国免费观看视频..| 亚洲午夜免费视频| 成人激情免费视频| 国产免费一区二区三区免费视频| 亚洲av片劲爆在线观看| 成人av免费电影| 国产精品美女免费视频观看| 久久水蜜桃亚洲av无码精品麻豆| 最近最新中文字幕完整版免费高清 | 久久久久亚洲AV片无码下载蜜桃| 亚洲黄色免费电影| 337p日本欧洲亚洲大胆人人| 亚洲人JIZZ日本人| 成人男女网18免费视频| a在线免费观看视频| 亚洲日韩精品国产3区| 色噜噜亚洲精品中文字幕| www视频免费看|