2012-10-22 18 views
1

這適用於IE,但不適用於Firefox。我明白window.event在Firefox中不存在,但我無法弄清楚它的正確語法。如何在Firefox中傳遞事件和變量?

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

的Javascript:

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在所有現代瀏覽器。

如果通過的event對象是undefined(舊版本的IE),e設置爲window.event

2

與IE,Firefox和Chrome以下的作品。(最新版本)

HTML:

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

的JavaScript:

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

現場演示:http://jsfiddle.net/vYUS8/2/

+0

也許如果您通過'事件'對象而不是'this'引用.. –

+0

+1爲固定版本 –

+0

+1爲提示! – jsalonen