作者 主題: 請教一個XML無法在firefox正確顯示的問題  (閱讀 3118 次)

0 會員 與 1 訪客 正在閱讀本文。

unetin

  • 懷疑的國中生
  • **
  • 文章數: 72
    • 檢視個人資料
請教一下..我將原本在IE可以work的xml tree menu,用firefox開起來是空的...
我利用alert()印出XML的資料,發現XML在IE和firefox得到的結果不一樣...該怎麼改呢?

IE:The Length is 2.The childNodes is .
Firefox:The Length is 1.The childNodes is undefined.

function xTree(tCont,xTreeSrc){

        if (document.all)
   var oCont = document.all[tCont];
        else
        var oCont = document.getElementById(tCont);
 
   //clear oCont's child

   while(oCont.childNodes.length)
      oCont.firstChild.removeNode(1);

   //if xTreeSrc is NULL, get one from Tag
   if(typeof(xTreeSrc)!="string")
      xTreeSrc = oCont.getAttribute("xTreeSrc");

   if(xTreeSrc == "")
        {
            var lang=getcookie('language');
            var english_only=getcookie('english_only');
            var menutree="";

            if ( english_only == "true" ) 
                menutree="english_only";
            else
                if ( typeof(lang) != "string" ) 
                    menutree='english';
                else
                    menutree=lang;

            xTreeSrc=menutree + '.xml';
        }

   //if xTreeSrc is NULL, do not thing
   if(typeof(xTreeSrc)!="string")
      return false;
      
   //load xml
        if (window.ActiveXObject)
        {
   xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
        }
        else if (window.XMLHttpRequest)
        {
     xmlhttp = new XMLHttpRequest();
        }
   xmlhttp.onreadystatechange = function(){if(xmlhttp.readyState!=4)return false;xTreeBuild(tCont,xmlhttp.responseXML)};
   xmlhttp.open("GET",xTreeSrc,true);
   xmlhttp.send(null);
}

function xTreeBuild(tCont,oXml){

        if (document.all)
   var oCont = document.all[tCont];
        else
        var oCont = document.getElementById(tCont);

        alert("The Length is "+oXml.childNodes.length+".");
        alert("The childNodes is "+oXml.childNodes[1]+".");
   if(oXml.childNodes.length!=2)
      return false;
   
   oCont.innerHTML = xTreeParseXml(tCont,oXml.childNodes[1]);
}

see7di

  • 懷疑的國中生
  • **
  • 文章數: 51
  • 性別: 男
    • 檢視個人資料
    • http://7di.net
你把所有的document.all都換成document.getElementById吧,這樣不僅可以讓Firefox工作正常,而且對IE的兼容性也非常好.