我有一个 Javascript 应用程序,它依赖于在文本区域中捕获键盘事件。在使用 firebug (1.10.2) 在 Firefox (14.x) 上测试和调试它时,我注意到当我的断点处于活动状态并且调试器正在工作时,我的应用程序的行为会有所不同。
我知道如何检测 Firebug,但我想知道当 Firebug 实际用于调试时是否可以检测(使用 Javascript)?
编辑:这是一些随机网站上的示例
该站点在输入框中捕获键事件,打印出字符代码并将按下的键替换为文本表示(即“输入”表示输入键)或大写字母(如果是字母)。
当我使用 Chrome 调试它并在侦听器函数上放置一个断点时,到达断点时没有任何反应(如预期的那样),当我恢复脚本时,文本会正常打印出来。
当我在 Firefox 上使用 Firebug 对其进行调试时:假设之前我按下了“e”字母并且输入栏包含文本“E”。我打开断点并按字母“z”。Firebug 在断点处停止,但输入栏现在有文本“Ez”而不是“E”。当我恢复脚本时,此文本将按预期替换为“Z”。
我尝试了另一个 Firefox 调试器(Venkman 0.9.89),同样的事情发生了。所以我的猜测是这是一个 Firefox 问题,而不是调试器问题。所以这个问题可能更笼统,可以检测到何时调试 Javascript 代码吗?