我有一個Javascript應用程序,它依賴於在textarea中捕獲鍵盤事件。當使用firebug(1.10.2)在Firefox(14.x)上測試和調試時,我注意到當我的斷點處於活動狀態並且調試器正在工作時,我的應用程序的行爲不同。檢測何時用於調試的Firebug(或任何其他網絡調試器)
我知道如何檢測Firebug,但我想知道當Firebug實際用於調試時是否可以檢測(使用Javascript)?
編輯:這裏是一些隨機網站
This site捕撈量的輸入框中的關鍵事件爲例,打印出的字符代碼,並替換爲文本表示按鍵(即「輸入」了輸入密鑰)或大寫(如果是字母)。
當我與Chrome的調試和放置一個斷點上監聽功能,當達到斷點(預期)沒有任何反應,當我恢復文本打印出正常的腳本。
當我用Firefox上的Firebug進行調試時:讓我們先說我按下「e」字母,輸入欄包含文本「E」。我打開斷點並按字母「z」。 Firebug停止在斷點處,但輸入欄現在具有文本「Ez」而不是「E」。當我恢復腳本時,按預期將此文本替換爲「Z」。
我嘗試了另一個Firefox調試器(Venkman 0.9.89),發生了同樣的事情。所以我的猜測是這是一個Firefox問題,而不是調試器問題。所以這個問題可能會更普遍,它是否可以在Javascript代碼被調試時被檢測到?
這是一個非常* *奇怪的要求。你的應用程序的行爲有什麼不同?也許你應該解決並修復你的應用程序的行爲,而不是試圖解決它 - 它在調試時通常不應該有不同的表現,並且可能存在一個架構問題。那麼其他很多調試器呢?你將不得不將它們都檢測出來...... – 2012-08-15 09:27:21
當Firebug工作時,即使你沒有斷點或與非Firebug運行的其他區別,它的工作方式也不同嗎? – 2012-08-15 09:43:57
我正在捕獲事件,處理它並阻止它。在調試執行該工作的方法時,事件實際發生在我的方法被調用之前,因此我無法阻止它。由於我的應用程序在Firebug關閉的情況下工作,我認爲這種行爲不是Firefox的問題。找到另一個調試器沒有發生在我身上,謝謝你的想法!另外,雖然Firebug已打開但未進行調試,但一切正常。 – Bikush 2012-08-15 09:46:08