复制代码 代码如下:

图片 1图片 2Code
 //退换排序格局(asc<–>desc)
function chgSortOrder(lastOrder){
    var newOrder = “”;
    if(lastOrder != “”){  
        if(lastOrder==”asc”){
            newOrder = “desc”;
        }else if(lastOrder==”desc”){
            newOrder = “asc”;
        }
    }else{ //first time order is asc(default)
        newOrder = “asc”;
    }
    return newOrder;
}

1.兼容firefox的 outerHTML,FF中没有outerHtml的方法。

function checkuser(obj) {
var obj = window.event.srcElement;
var row = obj.parentElement.parentElement;
var value = row.cells[0].all[0].value;

//检查字符的长度,按汉字的尺寸总计
function ChineseLenLimit( str, maxLen){
     var Strs = str;
     var strlength=0;
     var i;
     for ( i=0;i<str.length;i++) {
            if(str.charCodeAt(i)>=1000)
                    strlength += 2;
            else
                    strlength += 1;
     }
     if ( strlength > maxLen ){
         return false;
     }
     return true;
}

复制代码 代码如下:

var item = value.split(“|”);
alert(item);
if (item.length > 1) {
if (item[0] == “org”) {
alert(‘请选拔执法职员!’);
return false;
}

function isEmail(theStr){
    var atIndex = theStr.indexOf(‘@’);
    var dotIndex = theStr.indexOf(‘.’,atIndex);
    var flag = true;
    var theSub = theStr.substring(0,dotIndex+1);
    if((atIndex < 1)||(atIndex != theStr.lastIndexOf(‘@’))||(dotIndex < atIndex + 2)||(theStr.length <= theSub.length))
    { flag = false;    }
    else    { flag =true;    }
    return(flag);
}
function openwindow(url,name,iWidth,iHeight)
 {
  var url;                                 //转向网页的地方;
  var name;                           //网页名称,可为空;
  var iWidth;                          //弹出窗口的小幅度;
  var iHeight;                        //弹出窗口的万丈;
  var iTop = (window.screen.availHeight-30-iHeight)/2;       //得到窗口的垂直地点;
  var iLeft = (window.screen.availWidth-10-iWidth)/2;           //获得窗口的水平地点;
 window.open(url,name,’height=’+iHeight+’,,innerHeight=’+iHeight+’,width=’+iWidth+’,innerWidth=’+iWidth+’,top=’+iTop+’,left=’+iLeft+’,toolbar=no,menubar=no,scrollbars=auto,resizeable=yes,location=no,status=yes’);
  //window.open(url,name,’height=’+iHeight+’,width=’+iWidth+’,top=’+iTop+’,left=’+iLeft+’,toolbar=no,menubar=no,scrollbars=yes,resizeable=yes,location=no,status=yes’);
 }
  
        function ___doPostBack(eventTarget, eventArgument) 
        { 
        var theform = document.forms[‘form1’]; 
        if (!theform) 
        { 
        theform = document.form1; 
        } 
        theform.__EVENTTARGET.value = eventTarget ;
        theform.__EVENTARGUMENT.value = eventArgument; 
        theform.submit();
        }
   function openWindows(url, width, heigth)    
   {
        res=window.showModalDialog(url,window,”status:false;resizable:yes;dialogWidth:”+width+”px;dialogHeight:”+heigth+”px”);
        ___doPostBack(‘Form1’,res);
   }
   function SelectCheck(btn,gv)
   {
      var shouldSelect;
      if(btn.tag == 0)
      {
        btn.value = ”  反选”;
        btn.tag = 1;
        shouldSelect = true;
       }
       else
       {
            btn.value = ”  全选”;
            btn.tag = 0;
            shouldSelect = false;
       }
       var TargetChildControl = “chkBox1”;
       var Inputs = gv.getElementsByTagName(“INPUT”);
       for(var n = 0; n < Inputs.length; ++n)
       {
          if(Inputs[n].type == ‘checkbox’ && Inputs[n].id.indexOf(TargetChildControl,0) >= 0)
          {
               Inputs[n].checked=shouldSelect;
          }
       }
   }
   function CheckBox(gv,TargetChildControl)
   {
       var Inputs = gv.getElementsByTagName(“INPUT”);
       for(var n = 0; n < Inputs.length; ++n)
       {
          if(Inputs[n].type == ‘checkbox’ && Inputs[n].id.indexOf(TargetChildControl,0) >= 0&&Inputs[n].checked==true)
          {
               return confirm(‘是或不是删除?’);
               break;
          }
       }
       alert(“请至少接纳一项”);    
       return false;
       
   }
   //treeview的单击事件
  function GoClick()
  {
    
   var obj = event.srcElement;
   if(obj.tagName.toUpperCase() != “INPUT”) return;
   var tb = obj.parentElement.parentElement.parentElement.parentElement;//当前节点的Table
  
   SelAllChildren(tb,obj.checked);
  
   tb=  tb.parentElement;//
   
   while(true)
   {
      tb = tb.previousSibling 
     if( tb == null) return; 
      SetParentCheckBoxStatus(tb);
      tb=  tb.parentElement
      if( tb == null) return; 
   }
    
 }
 
 function SelAllChildren(tb,checked)
 {
    var div = tb.nextSibling;
   try
   {
    for(var i=0;i<div.children.length;i++)
    {
       
        if(div.children[i].tagName.toUpperCase()!=”TABLE”)continue;
        var chkBox= FindRowCheckBox(div.children[i].rows[0]);
        if(chkBox == null) continue;
        chkBox.checked = checked;
        
        SelAllChildren(div.children[i],checked);
        
    }
    }catch(e){}
 }
 function SetParentCheckBoxStatus(objTb)
 {
    var div = objTb.nextSibling;
     
    var bSelAll = true;
    var bSelOne = false;
    for(var i=0;i<div.children.length;i++)
    {
        
        if(div.children[i].tagName.toUpperCase()!=”TABLE”)continue;
        
        var chkBox= FindRowCheckBox(div.children[i].rows[0]);
        
        if(!chkBox.checked)
        {
            bSelAll =false;
        }else
        {
            bSelOne = true;
        }
    } 
    
    if(objTb.rows!= null)
    {
        var chkBox = FindRowCheckBox(objTb.rows[0])
        chkBox.checked  = bSelOne;
        
    } 
 }
 
 function FindRowCheckBox(tr)
 {
    for(var i=0;i<tr.cells.length;i++)
    {
        if(tr.cells[i].firstChild.tagName == “INPUT”)
        {
            return tr.cells[i].firstChild;
        }
    }
 }
 //结束
   

if (window.HTMLElement) {
HTMLElement.prototype.__defineSetter__(“outerHTML”,function(sHTML)
{
var r=this.ownerDocument.createRange();
r.setStartBefore(this);
var df=r.createContextualFragment(sHTML);
this.parentNode.replaceChild(df,this);
return sHTML;
});
HTMLElement.prototype.__defineGetter__(“outerHTML”,function() {
var attr;
var attrs=this.attributes;
var str=”<“+this.tagName.toLowerCase();
for (var i=0;i<attrs.length;i++) {
attr=attrs[i];
if(attr.specified)
str+=” “+attr.name+’=”‘+attr.value+'”‘;
}
if(!this.canHaveChildren)
return str+”>”;
return
str+”>”+this.innerHTML+”</”+this.tagName.toLowerCase()+”>”;
});
HTMLElement.prototype.__defineGetter__(“canHaveChildren”,function()
{
switch(this.tagName.toLowerCase()) {
case “area”:
case “base”:
case “basefont”:
case “col”:
case “frame”:
case “hr”:
case “img”:
case “br”:
case “input”:
case “isindex”:
case “link”:
case “meta”:
case “param”:
return false;
}
return true;
});
}

}
return true;
}

2.集结类对象难点
评释:IE下,可以使用()或[]猎取会集类对象;Firefox下,只好选用[]得到集合类对象.
消除措施:统一行使[]获得集合类对象.
3.自定义属性难题
表明:IE下,能够动用获取常规属性的不二等秘书籍来收获自定义属性,也足以使用getAttribute()获取自定义属性;Firefox下,只好动用getAttribute()获取自定义属性.
焚薮而田办法:统一通过getAttribute()获取自定义属性.

代码如下: function checkuser(obj) { var
obj = window.event.srcElement; var row =
obj.parentElement.parentElement; var value =
row.cells[0].all[0].value; var item =…

4.eval(“idName”)问题
表明:IE下,,能够行使eval(“idName”)或getElementById(“idName”)来获得id为idName的HTML对象;Firefox下只好选拔getElementById(“idName”)来得到id为idName的HTML对象.
缓和格局:统一用getElementById(“idName”)来收获id为idName的HTML对象.
5.变量名与某HTML对象ID一样的难点
表达:IE下,HTML对象的ID能够看作document的下级对象变量名直接利用;Firefox下则不可能.Firefox下,可以行使与HTML对象ID同样的变量名;IE下则不可能。
化解措施:使用document.getElementById(“idName”)替代document.idName.最棒永不取HTML对象ID同样的变量名,以压缩不当;在评释变量时,一律加上var,防止止歧义.
6.const问题
证明:Firefox下,能够接纳const关键字或var关键字来定义常量;IE下,只可以利用var关键字来定义常量.
减轻方式:统一使用var关键字来定义常量.
7.input.type属性难题
注明:IE下input.type属性为只读;然而Firefox下input.type属性为读写.
8.window.event问题
证实:window.event只可以在IE下运转,而无法在Firefox下运作,那是因为Firefox的event只能在事件产生的现场使用.
竭泽而渔办法:
IE:

复制代码 代码如下:

<input name=”Button8_1″ type=”button” value=”IE”
onclick=”javascript:gotoSubmit8_1()”/>

<script language=”javascript”>
function gotoSubmit8_1() {

alert(window.event); //use window.event

}
</script>

IE&Firefox:

复制代码 代码如下:

<input name=”Button8_2″ type=”button” value=”IE”
onclick=”javascript:gotoSubmit8_2(event)”/>

<script language=”javascript”>
function gotoSubmit8_2(evt) {

evt=evt?evt:(window.event?window.event:null);
alert(evt); //use evt

}
</script>

9.event.x与event.y问题
证实:IE下,even对象有x,y属性,但是从未pageX,pageY属性;Firefox下,even对象有pageX,pageY属性,可是尚未x,y属性.
杀鸡取蛋措施:使用mX(mX = event.x ? event.x :
event.pageX;)来顶替IE下的event.x大概Firefox下的event.pageX.