2012-10-22 8 views
1

IE에서는 작동하지만 Firefox에서는 작동하지 않습니다. Firefox에서 window.event가 존재하지 않는다는 것을 이해합니다. 그러나 올바르게 작동하기 위해서는 올바른 구문을 이해할 수 없습니다.어떻게 이벤트와 변수를 파이어 폭스에서 전달합니까?

HTML : <tr onclick="getDETAILS('getTASKS');"

자바 스크립트 :

function getDETAILS(action) { 
    if (window.event.ctrlKey) { 
     //doing something with action 
    } 
    } 

답변

2

크로스 브라우저 솔루션 :

<tr onclick="getDETAILS('getTASKS', event);"> 

JS는 :

function getDETAILS(action, e) { 
    e = e || window.event; 
    if (e.ctrlKey) { 
     alert('do stuff'); 
    } 
}​ 

Fiddle

event 목적은 모든 최신 브라우저에서 함수의 형식 매개 변수 e에 전달됩니다.

개체가 undefined (이전 버전의 IE) 인 경우 ewindow.event으로 설정됩니다.

2

IE, 파이어 폭스와 크롬 다음 작품. (최신 버전)

HTML :

<tr onclick="getDETAILS(event, 'getTASKS');"> 

자바 스크립트 :

function getDETAILS(evt, action) { 
    if(evt.ctrlKey) { 
    //doing something with action 
    } 
} 

라이브 데모 : http://jsfiddle.net/vYUS8/2/

+0

'this' 참조 대신'event' 객체를 전달한 경우 일 수 있습니다. –

+0

+1 고정 된 버전의 경우 –

+0

+1 팁! – jsalonen

관련 문제