2011-04-18 95 views
0

我正在使用螢火蟲和最新的FF來調試這一點的JavaScript。當線#30在調試器打在屏幕上試圖與消息幫助調試window.event.screenX

刷新「要顯示此頁面,火狐必須 發送將重複任何 操作(如搜索或訂單 確認)信息進行 更早。

的Javascript與行#的經由的OnClick()調用

function EnterComment(divName, /*...couple other params*/) { 
25 
26 thatDiv = divName; 
27 //...comment 
28 
29 // Mouse Position with offset 
30 var x = window.event.screenX + 10; 
31 var y = document.body.scrollTop + 20; 

這在IE中也不起作用。有沒有辦法從Firebug獲得例外?任何其他技巧來解決這個問題?

+0

Firefox *是否有* window.event? – sdleihssirhc 2011-04-18 16:13:51

+0

是從mousemove事件處理函數中調用的這個函數嗎? – 2011-04-18 16:14:25

+0

@sv_in - 更新後的文章OnClick() – 2011-04-18 16:19:37

回答

2

Firefox根本沒有全局「事件」對象。相反,對實質上類似的對象的引用被運行時系統傳遞給事件處理程序。

我無法確定您發佈的片段是哪種代碼。舉個例子,如果你的基本DOM 0屬性綁定的事件處理程序,你可以這樣做:

<a onclick='yourhandler(event)'>hi</a> 

然後:

function yourhandler(event) { 
    event = event || window.event; 
    var X = event.screenX; 
    // ... 
} 

如果,你在評論提到,你是使用jQuery綁定處理程序,那麼它更容易,因爲它在所有瀏覽器中都是相同的:

$(function() { 
    $('#myAnchor').click(function(event) { 
    var X = event.pageX; 
    }); 
}); 
+0

+1 - 謝謝你的幫助。這適用於以前版本的應用程序(僅在IE中測試)。所以,問題是我怎樣才能讓它再次運作?換句話說,是否有一個jQuery或JavaScript對象可以實現以前的功能?我想在通過OnClick()調用這個方法的時候抓住鼠標的位置。我看到http://docs.jquery.com/Tutorials:Mouse_Position#How_do_I_find_the_mouse_position.3F,但我不認爲這會起作用。 – 2011-04-18 16:19:16

+0

如果使用jQuery綁定事件處理函數,那麼它在任何瀏覽器中都是一樣的,因爲jQuery會爲您規範行爲。我會更新我的答案。 – Pointy 2011-04-18 16:20:49