火狐js

判断浏览器navigator.appName == "Microsoft Internet Explorer"
navigator.userAgent.indexOf("MSIE")>0
ff不支持
window.close()
innerText textContent
ff只有在window.open()的情况下支持window.close();但如果这个页是iframe也不行,建议用top.close.
children不支持,支持childNodes
ff读xml也要注意IE里面01234子节点,ff里面就变成13579了
IE
var opname=c.childNodes[0].text;
var opid=c.childNodes[1].text;
var opurl=c.childNodes[2].text;
var opuser=c.childNodes[3].text;
var opadress=c.childNodes[4].text
ff
var opname=c.childNodes[1].textContent;
var opid=c.childNodes[3].textContent;
var opurl=c.childNodes[5].textContent;
var opuser=c.childNodes[7].textContent;
var opadress=c.childNodes[9].textContent;

在mf中,自己定义的属性必须getAttribute()取得
但是千万注意,getAttribute()取得的值是不会变的,比如
var a=b.getAttribute("属性")
b.属性=100
var c=b.getAttribute("属性")
不管b.属性改成多少,a和c是相等的。
建议操作方式
全局变量 fag=0;
if(fag==0)
fag=b.属性=b.getAttribute("属性");

ff不能写function a.b()
  {}
要写成a.b=function(){}

ff不支持src="file:///c:a.gif";

xmlHttp.setRequestHeader ff里面一定要大写

ff的ajax,IE里面可以有很多写法,但ff里面有时就会出错,下面写一种不会出错的写法
function GetDataFromServer( url, id )
{
   if(window.XMLHttpRequest)
   { request = new XMLHttpRequest();}
   else
   if(window.ActiveXObject)
   { request = new ActiveXObject("MSXML2.XMLHTTP.5.0");}
   var serverUrl = url ;
   
   if( request )
   {
    window.status = "数据更新中...." ;
    
    request.open("get",serverUrl,true) ;
    request.setRequestHeader("content-type","application/x-www-form-urlencoded") ;
    request.onreadystatechange = function(){onResponse(id);};
    request.send(null) ;
   
    
   }
}
  function onResponse(id)
  {
   var xmlHttp=request;
   if(xmlHttp.readyState == 4)
   {
    if(xmlHttp.status == 200)
    {           
     var result =  xmlHttp.responseText ;
     if(document.getElementById("load_"+id))
     {
      逻辑;
     }
     window.status = "数据更新完成" ;
    }
   }
  }

同时支持IE和Firefox的日期控件---DatePicker

ie parentElement
ff parentNode

IE支持insertAdjacentElement,insertAdjacentHTML,insertAdjacentText
FF要实现
//--- 支持moz -------------------------------------------------------
if(typeof HTMLElement!="undefined" && !HTMLElement.prototype.insertAdjacentElement)
{
HTMLElement.prototype.insertAdjacentElement = function(where,parsedNode)
{
switch (where)
{
case 'beforeBegin':
this.parentNode.insertBefore(parsedNode,this);
break;
case 'afterBegin':
this.insertBefore(parsedNode,this.firstChild);
break;
case 'beforeEnd':
this.appendChild(parsedNode);
break;
case 'afterEnd':
if(this.nextSibling)
{
this.parentNode.insertBefore(parsedNode,this.nextSibling);
}
else
{
this.parentNode.appendChild(parsedNode);
}
break;
}
}

HTMLElement.prototype.insertAdjacentHTML = function(where,htmlStr)
{
var r = this.ownerDocument.createRange();
r.setStartBefore(this);
var parsedHTML = r.createContextualFragment(htmlStr);
this.insertAdjacentElement(where,parsedHTML);
}

HTMLElement.prototype.insertAdjacentText = function(where,txtStr)
{
var parsedText = document.createTextNode(txtStr);
this.insertAdjacentElement(where,parsedText);
}
}

attachEvent方法,为某一事件附加其它的处理事件。(不支持Mozilla系列)

addEventListener方法 用于 Mozilla系列

举例:

document.getElementById("btn").onclick = method1;
document.getElementById("btn").onclick = method2;
document.getElementById("btn").onclick = method3;
如果这样写,那么将会只有medhot3被执行

写成这样:
var btn1Obj = document.getElementById("btn1");
//object.attachEvent(event,function);
btn1Obj.attachEvent("onclick",method1);
btn1Obj.attachEvent("onclick",method2);
btn1Obj.attachEvent("onclick",method3);
执行顺序为method3->method2->method1


如果是Mozilla系列,并不支持该方法,需要用到addEventListener
var btn1Obj = document.getElementById("btn1");
//element.addEventListener(type,listener,useCapture);
btn1Obj.addEventListener("click",method1,false);
btn1Obj.addEventListener("click",method2,false);
btn1Obj.addEventListener("click",method3,false);
执行顺序为method1->method2->method3

 火狐和ie通用的event写法
<script type="text/javascript"> function getEvent() //同时兼容ie和ff的写法 { if(document.all) return window.event; func=getEvent.caller; while(func!=null){ var arg0=func.arguments[0]; if(arg0) { if((arg0.constructor==Event || arg0.constructor ==MouseEvent) || (typeof(arg0)=="object" && arg0.preventDefault && arg0.stopPropagation)) { return arg0; } } func=func.caller; } return null; } function test() { var event=getEvent(); if (navigator.appName=='Microsoft Internet Explorer') { alert(event.x); } else if (navigator.appName=='Netscape') { alert(event.pageX); } } </script> function getEvent() //同时兼容ie和ff的写法
    { 
        if(document.all)   return window.event;   
        func=getEvent.caller;       
        while(func!=null){ 
            var arg0=func.arguments[0];
            if(arg0)
            {
              if((arg0.constructor==Event || arg0.constructor ==MouseEvent) || (typeof(arg0)=="object" && arg0.preventDefault && arg0.stopPropagation))
              { 
              return arg0;
              }
            }
            func=func.caller;
        }
        return null;
    }

如调用:function test() {
        var event=getEvent();
        if (navigator.appName=='Microsoft Internet Explorer') {
            alert(event.x);
        }else if (navigator.appName=='Netscape') {
            alert(event.pageX);
        }
<script type="text/javascript"> function getEvent() //同时兼容ie和ff的写法 { if(document.all) return window.event; func=getEvent.caller; while(func!=null){ var arg0=func.arguments[0]; if(arg0) { if((arg0.constructor==Event || arg0.constructor ==MouseEvent) || (typeof(arg0)=="object" && arg0.preventDefault && arg0.stopPropagation)) { return arg0; } } func=func.caller; } return null; } function test() { var event=getEvent(); if (navigator.appName=='Microsoft Internet Explorer') { alert(event.x); } else if (navigator.appName=='Netscape') { alert(event.pageX); } } </script> <script type="text/javascript"> function getEvent() //同时兼容ie和ff的写法 { if(document.all) return window.event; func=getEvent.caller; while(func!=null){ var arg0=func.arguments[0]; if(arg0) { if((arg0.constructor==Event || arg0.constructor ==MouseEvent) || (typeof(arg0)=="object" && arg0.preventDefault && arg0.stopPropagation)) { return arg0; } } func=func.caller; } return null; } function test() { var event=getEvent(); if (navigator.appName=='Microsoft Internet Explorer') { alert(event.x); } else if (navigator.appName=='Netscape') { alert(event.pageX); } } </script> <script type="text/javascript"> function getEvent() //同时兼容ie和ff的写法 { if(document.all) return window.event; func=getEvent.caller; while(func!=null){ var arg0=func.arguments[0]; if(arg0) { if((arg0.constructor==Event || arg0.constructor ==MouseEvent) || (typeof(arg0)=="object" && arg0.preventDefault && arg0.stopPropagation)) { return arg0; } } func=func.caller; } return null; } function test() { var event=getEvent(); if (navigator.appName=='Microsoft Internet Explorer') { alert(event.x); } else if (navigator.appName=='Netscape') { alert(event.pageX); } } </script> <script type="text/javascript"> function getEvent() //同时兼容ie和ff的写法 { if(document.all) return window.event; func=getEvent.caller; while(func!=null){ var arg0=func.arguments[0]; if(arg0) { if((arg0.constructor==Event || arg0.constructor ==MouseEvent) || (typeof(arg0)=="object" && arg0.preventDefault && arg0.stopPropagation)) { return arg0; } } func=func.caller; } return null; } function test() { var event=getEvent(); if (navigator.appName=='Microsoft Internet Explorer') { alert(event.x); } else if (navigator.appName=='Netscape') { alert(event.pageX); } } </script> <script type="text/javascript"> function getEvent() //同时兼容ie和ff的写法 { if(document.all) return window.event; func=getEvent.caller; while(func!=null){ var arg0=func.arguments[0]; if(arg0) { if((arg0.constructor==Event || arg0.constructor ==MouseEvent) || (typeof(arg0)=="object" && arg0.preventDefault && arg0.stopPropagation)) { return arg0; } } func=func.caller; } return null; } function test() { var event=getEvent(); if (navigator.appName=='Microsoft Internet Explorer') { alert(event.x); } else if (navigator.appName=='Netscape') { alert(event.pageX); } } </script> <script type="text/javascript"> function getEvent() //同时兼容ie和ff的写法 { if(document.all) return window.event; func=getEvent.caller; while(func!=null){ var arg0=func.arguments[0]; if(arg0) { if((arg0.constructor==Event || arg0.constructor ==MouseEvent) || (typeof(arg0)=="object" && arg0.preventDefault && arg0.stopPropagation)) { return arg0; } } func=func.caller; } return null; } function test() { var event=getEvent(); if (navigator.appName=='Microsoft Internet Explorer') { alert(event.x); } else if (navigator.appName=='Netscape') { alert(event.pageX); } } </script>

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值