Firefox不支持event解决方法
//火狐上的用調(diào)試的小問題。alert();的使用
alert();當(dāng)里面沒有參數(shù)時(shí)會(huì)在火狐中無法運(yùn)行,IE可以。
alert('');有參數(shù)火狐才會(huì)執(zhí)行,在火狐調(diào)試時(shí)要特別注意。
-----------------------------------------------------------------------------------------------------
1)event
event.srcElement從字面上可以看出來有以下關(guān)鍵字:事件,源他的意思就是:當(dāng)前事件的源,
我們可以調(diào)用他的各種屬性就像:document.getElementById(”")這樣的功能,
經(jīng)常有人問firefox 下的event.srcElement 怎么用,在此詳細(xì)說明:
IE下,event對(duì)象有srcElement屬性,但是沒有target屬性;Firefox下,event對(duì)象有target屬性,但是沒有srcElement屬性.但他們的作用是相當(dāng)?shù)?#xff0c;即:
firefox 下的event.target = IE 下的event.srcElement
解決方法:使用obj(obj = event.srcElement ? event.srcElement : event.target;)來代替IE下的event.srcElement或者Firefox下的event.target.
http://www.firefox.hk
IE 中可以直接使用event 對(duì)象,而FF 中則不可以,解決方法之一如下:
var theEvent = window.event || arguments.callee.caller.arguments[0];
第二種是將event 作為參數(shù)來傳遞:
function xxx(e){var theEvent = window.event || e;}
srcElement 和target
在IE 中srcElement 表示產(chǎn)生事件的源,比如是哪個(gè)按鈕觸發(fā)的onclick 事件,FF 中則是target。
var theEvent = window.event || arguments.callee.caller.arguments[0];
var srcElement = theEvent.srcElement;
if (!srcElement){
srcElement = theEvent.target;
}
例子:
document.onclick = function(e){
var theEvent = window.event || e;
var srcElement = theEvent.srcElement;
if (!srcElement) {
srcElement = theEvent.target;
}
}
function clickAction(){
var theEvent = window.event || arguments.callee.caller.arguments[0];
var srcElement = theEvent.srcElement;
if (!srcElement) {
srcElement = theEvent.target;
}
// do something;
}
function clickAction(e){
var theEvent = window.event || e;
var srcElement = theEvent.srcElement;
if (!srcElement) {
srcElement = theEvent.target;
}
// do something;
}
event.keyCode 和event.which
FF不支持window.event.keyCode,代替著是event.which
列子:
//在網(wǎng)頁上面屏蔽tab鍵的代碼
document.onkeydown = function (e){
var theEvent = window.event || e;
var code = theEvent.keyCode || theEvent.which;
if(code == 9){
return false;
}
}
2)document.all
document.all是ie在dom標(biāo)準(zhǔn)確立之前的一個(gè)得到元素的一個(gè)集合,根據(jù)id和name,的一個(gè)元素大集合,后來DOM標(biāo)準(zhǔn)確定了,getElementById逐漸慢慢取代了all對(duì)象集的地位,但是firefox為了兼容一些為ie寫的使用document.all的腳本,不得已,加入了document.all支持,但是也不支持if(document.all)判斷,并且在有正確xhtml的doctype下會(huì)屏蔽使用document.all
3)event
window.event //IE
e //FF
e = window.event || e
3)判斷頁面加載完成
IE: document.onreadystatechange=function(){document.readyState=="complete"}
FF: document.addEventListener("DOMContentLoaded",handle,false)
當(dāng)某一事件被觸發(fā)時(shí)需要執(zhí)行某個(gè)函數(shù),在IE下可用attachEvent,在FF下則要用addEventListener。
attachEvent()有兩個(gè)參數(shù),第一個(gè)是事件名稱,第二個(gè)是需執(zhí)行的函數(shù);
addEventListener()有三個(gè)參數(shù),第一個(gè)是事件名稱,但與IE事件不同的是,事件不帶"on",比如"onsubmit"在這里應(yīng)為"submit",第二個(gè)是需執(zhí)行的函數(shù),第三個(gè)參數(shù)為布爾值;
來源: 站長吧- http://www.master8.net/data/2007/0620/article_10074.htm
4)設(shè)置容器位置left、top
IE:可以不用加單位px
FF:一定要加單位px
-------------------------------------------------------------------------------------------
//一種用來輸入整數(shù)的方法。
IsInt:<input type="text" οnkeyup="isInt(event);">
//是否整型
function isInt(e){
//keyCode:IE支持,which:FF支持。
var theEvent = window.event || e;
var code = theEvent.keyCode || theEvent.which;
if(code<48 || code>57){
//alert(code);//srcElement:IE支持,target:FF支持
var val = e.srcElement ? e.srcElement : e.target;
val.value = val.value.substring(0,val.value.length-1);
}
}
---------------------------------------------------------------------------------------------
// "||":也可以用來賦值,在FF中沒有window.event,要對(duì)象賦對(duì)象。isInt(event);
function isInt(e){
var oEvent = e || window.event; //用來判斷是IE或者FF,并賦值給對(duì)象。
var oTarget = oEvent.target || oEvent.srcElement; //用來取IE或者FF的對(duì)象。
}
轉(zhuǎn)載于:https://www.cnblogs.com/yexinw/archive/2011/08/12/2136282.html
總結(jié)
以上是生活随笔為你收集整理的Firefox不支持event解决方法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: byte 8位有符号 与 char 1
- 下一篇: 你可能不知道的switch
