テキストエリアでのキーボードイベントのキャプチャに依存するJavascriptアプリケーションがあります。Firefox(14.x)でfirebug(1.10.2)を使用してテストおよびデバッグしているときに、ブレークポイントがアクティブでデバッガーが機能している場合、アプリケーションの動作が異なることに気付きました。
Firebugを検出する方法は知っていますが、Firebugが実際にデバッグに使用されているときに(Javascriptを使用して)検出できるかどうかを知りたいですか?
編集:これはいくつかのランダムなサイトの例です
このサイトは、入力ボックスでキーイベントをキャッチし、文字コードを出力して、押されたキーをテキスト表現(つまり、Enterキーの場合は「Enter」)または大文字(文字の場合)に置き換えます。
Chromeでデバッグし、リスナー関数にブレークポイントを設定すると、(予想どおりに)ブレークポイントに達しても何も起こりません。スクリプトを再開すると、テキストは通常どおりに出力されます。
FirefoxでFirebugを使用してデバッグする場合:以前に「e」文字を押したときに、入力バーに「E」というテキストが含まれているとします。ブレークポイントをオンにして、文字「z」を押します。Firebugはブレークポイントで停止しますが、入力バーに「E」ではなく「Ez」というテキストが表示されるようになりました。スクリプトを再開すると、期待どおりにこのテキストが「Z」に置き換えられます。
別のFirefoxデバッガー(Venkman 0.9.89)を試してみたところ、同じことが起こりました。ですから、これはFirefoxの問題であり、デバッガの問題ではないと思います。したがって、質問はより一般的かもしれませんが、Javascriptコードがデバッグされているときにそれを検出できますか?