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

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

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

    emu in blogjava

      BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
      171 隨筆 :: 103 文章 :: 1052 評論 :: 2 Trackbacks
    http://developer.mozilla.org/en/docs/Using_XML_Data_Islands_in_Mozilla

    這篇文章的名字就叫做《Using XML Data Islands in Mozilla》,曾經(jīng)讓我很長的一段時間里面以為Mozilla(以及firefox)是支持xml數(shù)據(jù)島的,只是支持的方式有所不同。今天再次重讀的時候才突然注意到,其實第一段已經(jīng)講明白了,這只是個mimic

    One handy feature of Internet Explorer is the ability to use data islands to link data to html controls on a page. This feature is not readily built into Mozilla, but one can easily mimic this behaviour to build cross-browser web applications.

    (emu譯)IE的一個很好用的特性是可以用把數(shù)據(jù)島把數(shù)據(jù)和html連接起來(自動展現(xiàn)數(shù)據(jù))。Mozilla還沒有準(zhǔn)備為這個特性提供內(nèi)建的支持,但是我們可以輕易的模仿IE這個特性來構(gòu)建跨瀏覽器的網(wǎng)絡(luò)應(yīng)用。


    假的就是假的,所以有些特性是模仿不出來的,你可以用nodeValue來代替Text屬性,可以用innerHTML來代替xml屬性,但是你怎么處理這個數(shù)據(jù)呢: <![CDATA[ abc ]]>  。html沒有提供CDATA這樣的xml支持。

    還好Mozilla提供了另一種解決方案 DOMPaser 。我們可以通過這樣的方式來提供對頁面內(nèi)xml代碼的一致性的解析和使用:

    function parseXML(st){
        
    if(isIE){
            
    var result = new ActiveXObject("microsoft.XMLDOM");
            result.loadXML(st);
        }
    else{
            
    var parser = new DOMParser();
                    
    var result = parser.parseFromString(st, "text/xml");
      }
        
    return result;
    }

    對節(jié)點的一致性操作請參考 http://m.tkk7.com/emu/articles/32699.html
    posted on 2006-03-06 20:44 emu 閱讀(3751) 評論(10)  編輯  收藏

    評論

    # re: 原來Firefox還是不支持xml數(shù)據(jù)島 2006-04-11 17:41 hunter
    微軟本身對數(shù)據(jù)島也只是是臨時支持的,在msxml2里面有一個臨時解決方案
    它的文檔里面說這個方案未來是可能會被廢除的
    所以是一個不穩(wěn)定、長遠(yuǎn)的方案  回復(fù)  更多評論
      

    # re: 原來Firefox還是不支持xml數(shù)據(jù)島 2006-04-12 10:24 emu
    從IE5到IE7,xml數(shù)據(jù)島應(yīng)該馬上就10歲了(看來肯定能活過10歲),firefox才幾歲,netscape才風(fēng)光了幾年,,10年時間應(yīng)該稱得上很穩(wěn)定很長久了吧  回復(fù)  更多評論
      

    # re: 原來Firefox還是不支持xml數(shù)據(jù)島 2006-10-24 12:50 Lirf
    看來firefox還是太年青了啊...呵呵  回復(fù)  更多評論
      

    # re: 原來Firefox還是不支持xml數(shù)據(jù)島 2007-01-09 22:14 hobo
    html沒有提供CDATA這樣的xml支持。
    ------------------
    可以用xmp標(biāo)簽吧.  回復(fù)  更多評論
      

    # re: 原來Firefox還是不支持xml數(shù)據(jù)島 2007-01-10 00:07 emu
    不能吧。沒有看出來xmp有任何可以比div更好的代替xml數(shù)據(jù)島的潛力。  回復(fù)  更多評論
      

    # re: 原來Firefox還是不支持xml數(shù)據(jù)島 2007-01-10 23:26 Hobo
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
    <head>
    <title>flashloader</title>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
    </head>
    <body>
    <xmp id="xmp">
    <table>
    <tr>
    <td>
    <![CDATA[
    <script>
    String.prototype.trim = function()
    {
    [code];
    };
    </script>
    ]]>
    </td>
    </tr>
    </table>
    </xmp>
    <div id="div">
    <table>
    <tr>
    <td>
    <![CDATA[
    <script>
    String.prototype.trim = function()
    {
    [code];
    };
    </script>
    ]]>
    </td>
    </tr>
    </table>
    </div>
    <script type="text/javascript">
    /*<![CDATA[*/
    var getXML = function(sXML)
    {
    try
    {
    var _xmlDom = new ActiveXObject("Microsoft.XmlDom");
    _xmlDom.loadXML(sXML);
    }
    catch (e)
    {
    var _xmlDom = (new DOMParser()).parseFromString(sXML, "text/xml");
    }

    return _xmlDom;
    };

    alert(getXML(document.getElementById("xmp").innerHTML).xml);
    alert(getXML(document.getElementById("div").innerHTML).xml);
    /*]]>*/
    </script>
    </body>
    </html>
      回復(fù)  更多評論
      

    # re: 原來Firefox還是不支持xml數(shù)據(jù)島 2007-01-10 23:30 Hobo
    if (!!document.all)
    {
    alert(getXML(document.getElementById("xmp").innerHTML).xml);
    alert(getXML(document.getElementById("div").innerHTML).xml);
    }
    else
    {
    alert((new XMLSerializer).serializeToString(getXML(document.getElementById("xmp").innerHTML)));
    alert((new XMLSerializer).serializeToString(getXML(document.getElementById("div").innerHTML)));
    }  回復(fù)  更多評論
      

    # re: 原來Firefox還是不支持xml數(shù)據(jù)島 2007-01-11 09:21 emu
    支持CDATA的意思不是把CDATA打印出來,而是不把CDATA打印出來。

    function parseXML(st){
    if(!!document.all){
    var result = new ActiveXObject("microsoft.XMLDOM");
    result.loadXML(st);
    }else{
    var parser = new DOMParser();
    var result = parser.parseFromString(st, "text/xml");
    }
    return result;
    }
    var x=parseXML("<data><![CDATA[ <<<abc>>> ]]></data>")
    alert(x.getElementsByTagName("data")[0][(!!document.all)?"text":"textContent"])

    還是不明白CDATA的作用?試試把CDATA去掉會如何?
    x=parseXML("<data> <<<abc>>> </data>")
    alert(x.getElementsByTagName("data")[0][(!!document.all)?"text":"textContent"])
      回復(fù)  更多評論
      

    # re: 原來Firefox還是不支持xml數(shù)據(jù)島 2007-01-11 10:13 hobo
    <xmp id="xmp"><data><![CDATA[ <<<abc>>> ]]></data></xmp>
    <div id="div"><data><![CDATA[ <<<abc>>> ]]></data></div>

    <script type="text/javascript">
    /*<![CDATA[*/
    alert(document.getElementById("xmp").innerHTML);
    alert(document.getElementById("div").innerHTML);
    /*]]>*/
    </script>

    xmp innerHTML會原樣輸出,而div不能.  回復(fù)  更多評論
      

    # re: 原來Firefox還是不支持xml數(shù)據(jù)島 2007-01-11 14:30 emu
    拜托,問題不在于是否原樣輸出。而是xmp和div都沒有辦法解析出來CDATA的意義,把CDATA當(dāng)成節(jié)點值輸出出來了。麻煩再看一下我上午的代碼。  回復(fù)  更多評論
      


    只有注冊用戶登錄后才能發(fā)表評論。


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 国产hs免费高清在线观看| 波多野结衣中文字幕免费视频| 中文字幕一精品亚洲无线一区| 国产精品免费看香蕉| 亚洲色欲啪啪久久WWW综合网| 全部在线播放免费毛片| 免费中文字幕不卡视频| 日日摸日日碰夜夜爽亚洲| 国外成人免费高清激情视频| 亚洲视频在线观看2018| 操美女视频免费网站| 亚洲AV无码国产剧情| 免费观看亚洲人成网站| 国产精品无码永久免费888| 亚洲国产精品成人久久| 99久久精品免费精品国产| 国产亚洲中文日本不卡二区| 四虎免费久久影院| 久久最新免费视频| 久久精品国产亚洲AV无码麻豆| 羞羞视频免费网站含羞草| 亚洲国产成人精品无码区花野真一| 国产AV无码专区亚洲AV琪琪| 亚洲高清偷拍一区二区三区 | 亚洲中字慕日产2021| 青青在线久青草免费观看| 亚洲色大成网站www| 亚洲高清免费视频| 一级毛片在线免费观看| 亚洲欧美日韩一区二区三区| 亚洲av高清在线观看一区二区 | 亚洲国产无套无码av电影| 色欲色香天天天综合网站免费| 亚洲av成人一区二区三区在线观看| 亚洲国产精品综合久久网各| 青青草国产免费久久久下载| 中文字幕在线视频免费观看| 亚洲入口无毒网址你懂的| 亚洲А∨精品天堂在线| 8888四色奇米在线观看免费看| 亚洲AV无码专区国产乱码4SE|