我一直在单步执行一些 JavaScript 代码(在本例中是 Prototype 的 AJAX 库),以瞥见 responseText。我在 Firebug 和 IE Developer Tools 中读到过,您可以在断点处的任何本地范围内修改变量。
我看到我可以通过双击本地窗格中的变量或通过上下文菜单来做到这一点。我已经看到它有效,但不是一直有效,而且不是在我最需要它的时候:就在 responseText 出现时,我想对其进行编辑。
为了说明这一点:
我想更改突出显示的属性的值。
但这些变化并没有反映出来。事实上,没有任何属性变化反映在整个传输对象中。
为什么我还要尝试这样做? 嗯,在那个 responseText 中有一段 JavaScript 片段,它由 Prototype 的 evalScripts() 方法执行,其中可能存在语法错误。这导致 Magento 在类别编辑表单上出现“白屏死机”。我在 JavaScript 中发现了我的语法错误,并在开发环境中修复了它。但我也想在我的暂存环境(我没有写访问权限)中仔细检查这个修复。所以我的想法是在一个暂存环境客户端页面请求上截取responseText,修改它来修复JS错误,让它通过来证明我的bug修复。
我可以等到这段代码被推送并在登台上测试,但我提出这个问题的真正目的是弄清楚为什么我可以修改一些本地范围变量而不是其他变量。
我希望我已经问清楚了。任何帮助,将不胜感激。谢谢!
更新(Chrome): 我认为值得一提的是,Chrome 支持此功能的时间已经很晚了,但最近(3 月 21 日)的开发正在进行中,根据这篇文章:
https://code.google.com/p/v8/issues/detail?id=212
不过,这个问题的海报解释了我不知道的调试引擎的一些底层组件。很有见地。不回答我的问题,但仍然与主题有关。