2012-07-03 48 views
0

可能重複:
Javascript Error in FireFox Not in IE and Chrome事件沒有定義Firefox的

我有一個JavaScript函數,它是在日曆我Javacaleder.js文件。 這個壓光機在IE和Chrome中工作正常,但不能在FF中工作。它顯示錯誤控制檯中的錯誤 ..「事件未定義」它顯示event.clientX中的錯誤;下面一行 是function..any幫助表示讚賞.. 以下函數被調用像這樣...

objDiv.style.left = GetControlLeftPosition_jScript() + "px"; 

function GetControlLeftPosition_jScript() { 
var controlLeft = event.clientX; 
var pageWidth = document.body.clientWidth; 
var spaceinRight = parseInt(pageWidth) - parseInt(controlLeft); 
if (spaceinRight > 220) { 
    return controlLeft 
} 
else { 
    return parseInt(pageWidth) - 220; 
} 

}

+3

像這個問題一樣的原因http://stackoverflow.com/questions/11256257/javascript-error-in-firefox-not-in-ie-and-chrome/11256291#11256291 – xdazz

+0

一個類似的問題已經在這裏回答: http://stackoverflow.com/questions/2974601/event-is-not-defined-in-firefox-but-ok-in-chrome-and-ie – seedg

+0

@Chris我沒有事件對象作爲參數傳遞GetControlLeftPosition_jScript函數..你可以看到它被調用的方式......你能解釋一下,如果我將事件作爲參數傳遞,這個工作如果是,那麼爲什麼這應該起作用? –

回答

1

用戶點擊下一步按鈕文本框,然後告訴你的日曆。好。您的按鈕的單擊處理程序將接收事件對象作爲第一個參數。在那裏,你有你的事件對象!

檢查是否undefined,如果是的話,你可能會運行IE的老版本。在這種情況下,使用window.event

function buttonClickHandler(event) { 
    var eventObj = event || window.event; 
    objDiv.style.left = GetControlLeftPosition_jScript(eventObj) + "px"; 
} 

function GetControlLeftPosition_jScript(eventObj) { 
    var controlLeft = eventObj.clientX; 
    // ... remaining code. 

這就是說,我會建議你使用抽象這些問題,而是爲您提供一個API庫。像jQuery或Mootools或道場或任何東西捕捉你的幻想。

相關問題