1. 程式人生 > >event 火狐不相容 問題

event 火狐不相容 問題

一,

      做網頁效果的時候需要用到js中的event監聽滑鼠事件,在ie與chrome瀏覽器中使用是正常的,但是在火狐瀏覽器中就不好使了,怎麼才能相容火狐瀏覽器呢?

      一般我們要呼叫一個事件,直接使用 event 變數

<input type="button" onclick="show_click()">
function show_click(){

  alert("滑鼠點選位置x="+event.clientX);

}

     這樣 在chrome瀏覽器開啟,會正常顯示,但是 使用 狐火 瀏覽器 ,根本沒有效果。

     那麼 ,怎麼才能解決這個問題呢?

     修改一下,把div中修改為show_click(event)。使用e = window.event || even; 來獲取事件

 <input type="button" onclick="show_click(event)">
function show_click(even){

    e = window.event || even;

   alert("滑鼠點選位置x="+e.clientX);

}

    這樣,在火狐 就可以呼叫 該事件了

二,

    火狐有著不識別window.event 的問題,對於狐火瀏覽器,有2種方法 解決 該問題

方法一:傳參的方式

<button id="b1" onclick="clill(event)">456</button>
function clill(even){
    var oEvent = even || window.event
    oEvent.stopPropagation();     //該API有對IE的相容
    //oEvent.cancelBubble = true; //IE的API

    // window.event ? window.event.cancelBubble = true : event.stopPropagation();

					
}

方法二:不傳參的方式

function clill(){
    var oEvent = arguments.callee.caller.arguments[0] || window.event; 
    oEvent.stopPropagation(); 
}

三,

    如果是觸發了在js裡繫結的事件,要怎麼獲取 當前事件呢?

    他就在function()中的第一個形參。如下,就可以得到 當前事件了。

document.body.onclick=function(e){
	var oEvent =e||window.event;
};