写了两个例子:
1. 对于通过ID取对象
function getObjectById(id)
{
  if (typeof(id) != "string" || id == "") return null;
  if (document.all) return document.all(id);
  if (document.getElementById) return document.getElementById(id);
  try {return eval(id);} catch(e){ return null;}
}2. 对事件附加处理函数
  if(document.attachEvent)
    window.attachEvent("onresize", function(){reinsert();});
  else
    window.addEventListener('resize', function(){reinsert();}, false);
注意在IE里是 onclick 而在firefox NS 里则是 click !

解决方案 »

  1.   

    用脚本提交
    document.formName.action = "...";
    document.formName.submit();好像在mozilla下不能用
      

  2.   

    请问楼上个老大,
    在mozilla下怎么动态更改Css文件?
    ie下可以这么做:window.document.styleSheets[0].href = "css文件";
      

  3.   

    TO CHEXIAOHAN:
    remove link object and create a new one
      

  4.   

    动态更改CSS IE跟Mozilla可以这样
    给link设定id,
    <link id="pagestyle" rel="stylesheet" rev="stylesheet" type="text/css" media="screen" href="template/gray/xmas.css" charset="UTF-8" />
    然后通过脚本来设置
    <script language="JavaScript" type="text/JavaScript">
    function setStyle(h)
    {
    var s = document.getElementById("pagestyle");
    s.href = h;
    return false;
    }
    </script>
    引用
    <a href="#" onclick="javascript:setStyle('template/gray/gq.css');return false;">国庆样式</a>
    <a href="#" onclick="javascript:setStyle('template/gray/xmas.css');return false;">圣诞样式</a>
      

  5.   

    处理XML的方法var FCKXml = function()
    {}FCKXml.prototype.GetHttpRequest = function()
    {
    if ( window.XMLHttpRequest ) // Gecko
    return new XMLHttpRequest() ;
    else if ( window.ActiveXObject ) // IE
    return new ActiveXObject("MsXml2.XmlHttp") ;
    }FCKXml.prototype.LoadUrl = function( urlToCall, asyncFunctionPointer )
    {
    var oFCKXml = this ; var bAsync = ( typeof(asyncFunctionPointer) == 'function' ) ; var oXmlHttp = this.GetHttpRequest() ; oXmlHttp.open( "GET", urlToCall, bAsync ) ;

    if ( bAsync )
    {
    oXmlHttp.onreadystatechange = function() 
    {
    if ( oXmlHttp.readyState == 4 )
    {
    oFCKXml.DOMDocument = oXmlHttp.responseXML ;
    asyncFunctionPointer( oFCKXml ) ;
    }
    }
    }

    oXmlHttp.send( null ) ;

    if ( ! bAsync && oXmlHttp.status && oXmlHttp.status == 200 )
    this.DOMDocument = oXmlHttp.responseXML ;
    else
    throw( 'Error loading "' + urlToCall + '"' ) ;
    }FCKXml.prototype.SelectNodes = function( xpath, contextNode )
    {
    if ( document.all ) // IE
    {
    if ( contextNode )
    return contextNode.selectNodes( xpath ) ;
    else
    return this.DOMDocument.selectNodes( xpath ) ;
    }
    else // Gecko
    {
    var aNodeArray = new Array(); var xPathResult = this.DOMDocument.evaluate( xpath, contextNode ? contextNode : this.DOMDocument, 
    this.DOMDocument.createNSResolver(this.DOMDocument.documentElement), XPathResult.ORDERED_NODE_ITERATOR_TYPE, null) ;
    if ( xPathResult ) 
    {
    var oNode = xPathResult.iterateNext() ;
      while( oNode )
      {
      aNodeArray[aNodeArray.length] = oNode ;
      oNode = xPathResult.iterateNext();
      }

    return aNodeArray ;
    }
    }FCKXml.prototype.SelectSingleNode = function( xpath, contextNode ) 
    {
    if ( document.all ) // IE
    {
    if ( contextNode )
    return contextNode.selectSingleNode( xpath ) ;
    else
    return this.DOMDocument.selectSingleNode( xpath ) ;
    }
    else // Gecko
    {
    var xPathResult = this.DOMDocument.evaluate( xpath, contextNode ? contextNode : this.DOMDocument,
    this.DOMDocument.createNSResolver(this.DOMDocument.documentElement), 9, null); if ( xPathResult && xPathResult.singleNodeValue )
    return xPathResult.singleNodeValue ;
    else
    return null ;
    }
    }
      

  6.   

    IE跟Mozilla下Dhtml的区别大家可以参考FCKeditor在线编辑器(http://www.fckeditor.net/),他同时考虑了IE和Gecko,脚本代码非常经典
      

  7.   

    我也写了一个兼容的html editor其实,mozilla下是支持对html element增加方法的下载:
    http://fason.nease.net/script/emu.js
      

  8.   

    8.删除一个对象,用DOM的做法是
    var p = obj.parentNode;
    p.removeChild(obj);9.select 的option增加和删除看看,不用add和remove
    http://fason.nease.net/samples/js/moveoptions.html10.mozilla中处理右键问题,dom2已经支持oncontextmenu,不用e.which == 2来判断
      

  9.   

    刚刚有人问到:
    11.ie下的opacity,mozilla怎么处理??答:
    obj.style.MozOpacity = 0.5;//  .opacity-css { -moz-opacity:0.5 }
      

  10.   

    XML应用上区别还有
    if(ie){
        var xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
        xmlDoc.async = "false";
        xmlDoc.loadXML(xmlText);
    }
    else{ //mozilla
        var parser = new DOMParser();
        var xmldoc = parser.parseFromString(xmlText,"text/xml");
    }
      

  11.   

    某国内网站全部用户浏览器使用率:Browsers (Top 10)   -   Full list/Versions   -   Unknown    
      Browsers Grabber Hits Percent 
     MS Internet Explorer No 48355105 99.8 % 
     Unknown ? 30533 0 % 
     FireFox No 11401 0 % 
     Mozilla No 4813 0 % 
     Opera No 3048 0 % 
     Safari No 1558 0 % 
     Netscape No 1265 0 % 
     Konqueror No 132 0 % 
     Phoenix No 6 0 % 
     K-Meleon No 3 0 % 
      Others   2 0 % 
     
      

  12.   

    12.<script src=XX.js></script>
    在ie下改变script的src可以直接obj.src="XXX.js",mozilla不行,要remove掉再create一个才能生效.13.ie下的obj.currentStyle.xxx,mozilla下用
    document.defaultView.getComputedStyle(obj, '').getPropertyValue("xxx")
      

  13.   

    看了http://fason.nease.net/mozilla/dom/,不错,有打包么?
      

  14.   

    to ttyp:这是和mozilla.org上的是一样的, 只是我把它抓了下来本地
      

  15.   

    谢谢 fason(咖啡人生) 
    在这呢http://www.mozilla.org/docs/web-developer/,回头好好看看,呵呵
      

  16.   

    我也来凑凑热闹,也是参考别人的,这些是几个mozilla下没有的属性。  HTMLElement.prototype.__defineGetter__
      (
        "outerHTML", 
        function()
        {
          var str = "<" + this.tagName; 
          for (var i=0; i<this.attributes.length; i++)
          {
            var attr = this.attributes[i];        str += " ";
            str += attr.nodeName + "=" + '"' + attr.nodeValue + '"';
          }
          str += ">" + this.innerHTML + "</" + this.tagName + ">";
          return str;
        }
      );  HTMLElement.prototype.__defineSetter__
      (
        "innerText", 
        function (anything) 
        {
          this.innerHTML = "";      var sText = String(anything);
          var textS = sText.split("\n");
          for(var i=0; i<textS.length; i++)
          {
            var txtNode = null;
            var retNode = null;        if(textS[i].length)
              txtNode = document.createTextNode(textS[i]);        if(i<textS.length-1)
              retNode = document.createElement("BR");        if(txtNode)
              this.appendChild(txtNode);        if(retNode)
              this.appendChild(retNode);
          }
        }
      );  HTMLElement.prototype.__defineGetter__
      (
        "innerText", 
        function () 
        {
          var anyString = "";      var childS = this.childNodes;
          for(var i=0; i<childS.length; i++)
          {
            if(childS[i].nodeType==1)
              anyString += childS[i].tagName=="BR" ? '\n' : childS[i].innerText;
            else if(childS[i].nodeType==3)
              anyString += childS[i].nodeValue;
          }      return anyString;
        }
      );  HTMLElement.prototype.__defineGetter__
      (
        "text", 
        function () 
        {
          return this.innerText;
        }
      );
      

  17.   

    想请问一下阿信, 知道不知道进行 Mozilla 扩展开发的调试环境呀,毕竟是新东西, 没有合适的调试环境,开发效率太低了. 我正在开发 XPI 扩展呀!
      

  18.   

    想请问一下:active控件在Mozilla 里怎么用啊?
      

  19.   

    iso8859编码格式IE显示是乱码,mozilla却能正常显示。可是有些路径mozilla却不能认。
      

  20.   

    好帖。
    我最近也开始做mozilla/opera的开发。
    有新的idea就帖到这里来吧。mozilla 不支持 element.customAttribute 的。
    一定要用 setAttribute("customAttribute",value) , getAttribute("customAttribute")
    (这个是最麻烦的地方)我自己是写了这个全局函数来添加删除事件的:function AttachDomEvent(obj,name,func)
    {
    if(obj.attachEvent)
    obj.attachEvent("on"+name,func);
    if(obj.addEventListener)
    obj.addEventListener(name,func,true);
    }
    function DetachDomEvent(obj,name,func)
    {
    if(obj.detachEvent)
    obj.detachEvent("on"+name,func);
    if(obj.removeEventListener)
    obj.removeEventListener(name,func,true);
    }例如
    AttachDomEvent(window,"click",handle_click);
    有时候mozilla不认某写元素的id,如果你不想用getElementById,那么可以在</BODY>后加这一段代码:
    if(document.addEventListener)
    {
    var tagcoll=document.getElementsByTagName("*");
    for(var i=0;i<tagcoll.length;i++)
    {
    if(tagcoll[i].id)
    {
    eval("var "+tagcoll[i].id+"=document.getElementById('"+tagcoll[i].id+"')");
    }
    }
    }
    不过这段代码与 iframe/frame 的有冲突的地方。我平时用到的比较常见的问题是
    table.insertRow(-1);
    row.insertCell(-1);
      

  21.   

    对addEventListener和removeListener,mozilla和opera还是有区别的
    在opera中,window.addEventListener >> document.addEventListenerframe/iframe区别的访问方式其实是一样的,要用标准的方法,window.frames[frameName].document
      

  22.   

    NETSCAPE 不支持onpropertychange事件,请问下 在netscape里有什么好的办法解决这个问题我现在的问题是子窗口关闭时更新了父窗口一个textbox的值,这个textbox有onpropertychange事件
      

  23.   

    楼主说的第12条
    12.<script src=XX.js></script>
    在ie下改变script的src可以直接obj.src="XXX.js",mozilla不行,要remove掉再create一个才能生效.没搞懂,具体该怎么写呀???