Firefox不支持event解决方法
//火狐上的用調試的小問題。alert();的使用
alert();當里面沒有參數時會在火狐中無法運行,IE可以。
alert('');有參數火狐才會執行,在火狐調試時要特別注意。
-----------------------------------------------------------------------------------------------------
1)event
event.srcElement從字面上可以看出來有以下關鍵字:事件,源他的意思就是:當前事件的源,
我們可以調用他的各種屬性就像:document.getElementById(”")這樣的功能,
經常有人問firefox 下的event.srcElement 怎么用,在此詳細說明:
IE下,event對象有srcElement屬性,但是沒有target屬性;Firefox下,event對象有target屬性,但是沒有srcElement屬性.但他們的作用是相當的,即:
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 對象,而FF 中則不可以,解決方法之一如下:
var theEvent = window.event || arguments.callee.caller.arguments[0];
第二種是將event 作為參數來傳遞:
function xxx(e){var theEvent = window.event || e;}
srcElement 和target
在IE 中srcElement 表示產生事件的源,比如是哪個按鈕觸發的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
列子:
//在網頁上面屏蔽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標準確立之前的一個得到元素的一個集合,根據id和name,的一個元素大集合,后來DOM標準確定了,getElementById逐漸慢慢取代了all對象集的地位,但是firefox為了兼容一些為ie寫的使用document.all的腳本,不得已,加入了document.all支持,但是也不支持if(document.all)判斷,并且在有正確xhtml的doctype下會屏蔽使用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)
當某一事件被觸發時需要執行某個函數,在IE下可用attachEvent,在FF下則要用addEventListener。
attachEvent()有兩個參數,第一個是事件名稱,第二個是需執行的函數;
addEventListener()有三個參數,第一個是事件名稱,但與IE事件不同的是,事件不帶"on",比如"onsubmit"在這里應為"submit",第二個是需執行的函數,第三個參數為布爾值;
來源: 站長吧- http://www.master8.net/data/2007/0620/article_10074.htm
4)設置容器位置left、top
IE:可以不用加單位px
FF:一定要加單位px
-------------------------------------------------------------------------------------------
//一種用來輸入整數的方法。
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,要對象賦對象。isInt(event);
function isInt(e){
var oEvent = e || window.event; //用來判斷是IE或者FF,并賦值給對象。
var oTarget = oEvent.target || oEvent.srcElement; //用來取IE或者FF的對象。
}
轉載于:https://www.cnblogs.com/yexinw/archive/2011/08/12/2136282.html
總結
以上是生活随笔為你收集整理的Firefox不支持event解决方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: byte 8位有符号 与 char 1
- 下一篇: 你可能不知道的switch