2013-04-04 82 views
2

我目前正在開發一個ASP.Net項目,它有大量的js文件,大部分來自第三方來源。在許多頁面上,焦點被設置爲一個控件,而不是我在代碼隱藏(Control.Focus())中設置的控件。我怎樣才能弄清楚焦點如何改變,如何改變?我怎樣才能找出Javascript在改變我的焦點

我已經爲FireBug安裝FireFocus,所以我可以看到焦點正在改變,但我看不到原因。

+0

重複的問題:http://stackoverflow.com/questions/570960/how-to-debug-javascript-jquery-event-bindings-with-firebug-or-similar-tool – 2013-04-04 19:10:29

+2

嘗試使用jQuery將焦點事件處理程序添加到錯誤接收焦點的元素。從那裏設置一個斷點並查看調用堆棧以確定焦點的設置位置。我不確定FireBug是否顯示調用堆棧(它應該),但Chrome開發人員工具的確如此。 – Danny 2013-04-04 19:30:56

回答

1

使用Moby的Stunt Double提供的鏈接,我在頁面底部添加了以下代碼,每次焦點改變時,調用堆棧都被轉儲到控制檯,以便跟蹤源代碼。

<script type="text/javascript"> 
    $("#TabInformation").on("focus", function (event) { 
     try { throw new Error("dummy"); } catch (e) { console.log(e.stack); } 
    }); 
</script> 
這裏