2012-01-06 135 views
1

每次Dojo處理UI事件時,是否可能有'註冊第三方'函數或修改Dojo代碼庫來調用我的函數?換句話說,我希望每次Dojo處理事件時都會調用自己的函數;並將事件對象傳遞給我的函數,以便我可以跟蹤頁面上的所有用戶活動。 感謝 傑裏跟蹤Dojo UI事件

+0

您可以使用'dojo.connect'(或1.7和更高版本中的'dojo.on')將您的處理程序與由窗口小部件引發的DOM事件或Dojo事件掛鉤。另外,每個小部件都包含一個'watch'功能,允許您添加一個「監視」處理程序來跟蹤屬性更改。或者,作爲最後的手段,在對象本身中「劫持」事件功能。您不太可能需要修改Dojo來源。 – 2012-01-08 07:57:20

+0

你問這個問題,您認爲修改道場源是必要的事實表明你可能是JavaScript新手從C類語言(如C#或Java)。標準JavaScript有很多面向方面的編程技巧,如果不修改庫源,對其他語言來說很難。 – 2012-01-08 07:58:39

+0

感謝您的意見,但我覺得我需要修改代碼庫的原因在我的評論中描述。 – Jerry 2012-01-09 15:36:10

回答

0

如果通過「UI事件」是什麼意思DOM事件,那麼你可以聽窗口文檔對象 - dojo.doc - 因爲事件冒泡(只要起泡不停止,例如,通過dojo.stopEvent(event)):

dojo.connect(dojo.doc, "onclick", function(event) { 
    console.log(event); 
}); 

觸摸jsFiddle

您也可以考慮查看dojox.form.Manager Tutorial以觀察表單元素。

+0

感謝所有的反應,使用dojo.connect方法是我第一次嘗試,但由於事件的冒泡可以停止使用dojo.stopEvent意味着將有會被我的跟蹤代碼錯過的活動。由於我不能缺少事件,所以我唯一能想到的其他解決方案就是將跟蹤函數調用放入dojo事件處理過程中。所以我希望有人能指出我在正確的方向是開始尋找dojo代碼庫,在那裏我可以把我的跟蹤函數調用。再次感謝您的所有時間。 – Jerry 2012-01-09 15:34:07

+0

嘗試谷歌'網站heatmaps'找出使用什麼技巧。我確信有開源項目來研究源代碼。 – phusick 2012-01-09 19:02:36