function MM_goToURL() { //v3.0
  var i, args=MM_goToURL.arguments; document.MM_returnValue = false;
  for (i=0; i<(args.length-1); i+=2) eval(args[i]+".location='"+args[i+1]+"'");
}
主要是这句话
for (i=0; i<(args.length-1); i+=2) eval(args[i]+".location='"+args[i+1]+"'");谢谢!

解决方案 »

  1.   

    我在ie 8, firefox 3.5, safari 4.0下测试,代码都能正常运行亚
      

  2.   

    测试代码如下:
        <div>
        <input type="button" value="aaa" onclick="oc()" />
        </div>
        <script type="text/javascript">
            function MM_goToURL()
            { //v3.0 
                var i, args = MM_goToURL.arguments; document.MM_returnValue = false;
                for (i = 0; i < (args.length - 1); i += 2) eval(args[i] + ".location='" + args[i + 1] + "'");
            }        function oc()
            {
                MM_goToURL("window", "http://www.google.cn");
            }    </script>
      

  3.   

    if (setYear.options.length != yearcount)
    {
        setYear.options.length = 0;
        var opt = null;
        var thisyear = new Date().getYear();
        for (var j=0; j<yearcount; j++)
        {
            opt = document.createElement('option');
            opt.value = (thisyear - yearcount + 10 + j) + "";
            opt.text = (thisyear - yearcount + 10 + j) + " Year";
            opt.id = "yearOpt" + (j + 1);
            setYear.options[setYear.options.length] = opt;
        }
    }
    function setSelectYear()
    {
       // set select year
       tmpYear = currentMonth.getYear();
       if( tmpYear < year )
          tmpYear += 1900 - (yearcount - yearroute);
       else
          tmpYear -= (yearcount - yearroute);
       tmpYear1 = tmpYear + (yearcount - yearroute);   
       for(i=1; i <= yearcount ; i++)
       {
          targetId = 'yearOpt' + i;
          targetElement = document.all(targetId);
          targetElement.innerText = tmpYear;
          targetElement.value = tmpYear;
      //alert("i = " + i + "\ntargetId = " + targetId + "\n\ntmpYear = " + tmpYear);
          tmpYear++;
       }
       setYear.value = tmpYear1;
       rsString = "";
       
       setSelectDay();
    }恩,sjkof是对的,这个原因是由其他问题引起的,现在还有两个地方,也帮我看看,谢谢,绝对只有这两个了.
    这句: if (setYear.options.length != yearcount)
    还有这句 :       targetElement.innerText = tmpYear;
    谢谢!
      

  4.   

    这两个地方都是firefox报的错.
      

  5.   

    firefox下用textContent代替innerText
    估计你有一个select的id是setYear
    要用标准的document.getElementById("setYear")代替直接引用setYear
      

  6.   


    firefox下用textContent代替innerText 这个在safari中可以兼容吗?
    我不想写那种判断浏览器的方法.  第二种我去试下,谢谢
      

  7.   


    不想写判断浏览器的方法的话,那么就给firefox加一个innerText属性把
    <script language="javascript">
    function isIE(){ //ie? 
    if (window.navigator.userAgent.toLowerCase().indexOf("msie")>=1) 
        return true; 
    else 
        return false; 
    } if(!isIE()){ //firefox innerText define
        HTMLElement.prototype.__defineGetter__("innerText", 
        function(){
            var anyString = "";
            var childS = this.childNodes;
            for(var i=0; i<childS.length; i++) { 
    Webjx.Com
                if(childS[i].nodeType==1)
                    //anyString += childS[i].tagName=="BR" ? "\n" : childS[i].innerText;
                    anyString += childS[i].innerText;
                else if(childS[i].nodeType==3)
                    anyString += childS[i].nodeValue;
            }
            return anyString;
        } 
        ); 
        HTMLElement.prototype.__defineSetter__("innerText", 
        function(sText){
            this.textContent=sText; 
    Webjx.Com    } 
        ); 
    }
    </script>
      

  8.   

    这样,只要把这段话放在你的js前面,你的js就能在firefox里正常使用innerText了
      

  9.   

    sjkof 您好,
    我正在用你的方法解决问题,解决完后给您答复,谢谢!
    也感谢各位!