Javascript:如何单步站点初始化?

时间:2016-09-22 11:58:02

标签: javascript debugging initialization firebug

简短背景:我对Javascript很陌生,目前有兴趣根据我的需要定制第三方网站 - 即为Greasemonkey等编写脚本。通常这些网站都充斥着Jquery,Bootstrap等库,这使得更难以弄清楚它们的工作原理。

当我分析一个新网站并想知道执行什么代码时,我可以使用Firebug创建断点或观察点,然后单步执行代码。但是,这对于在网站首次加载时已经运行的代码不起作用。我如何单步执行此部分?基本上我正在寻找一种方法来设置断点,直到第一个Javascript代码执行为止。

如果有比Firebug更好的工具我会全力以赴地寻求建议。请记住,我不控制网站,因此更改网站代码是不可能的。

1 个答案:

答案 0 :(得分:0)

如果您足以停止页面的加载事件(通常在该事件之前执行某些代码),您可以执行以下操作:

  1. 切换到 HTML 面板,然后转到 Events 侧面板。
  2. 向下滚动到 Window的其他侦听器
  3. 部分
  4. 右键单击'load'事件下的函数(可能是除此之外还有箭头的函数),然后从上下文菜单中选择 Set Breakpoint

    注意:可能有一个'DOMContentLoaded'事件处理程序,它在'load'事件之前调用。因此,如果存在,请在该函数处设置断点。

  5. 重新加载页面。
  6. 以下是该菜单的屏幕截图: Setting a breakpoint at the 'load' event

    如上所述,通常在触发'load'事件之前已经执行了一些代码,比如库被加载或者一些全局变量被初始化。虽然据我所知,Firebug(或其他浏览器开发人员工具)中没有选项可以在第一个执行的JavaScript语句中停止脚本执行。 但通常在这条线上设置断点通常很容易。它只需要一些手动搜索:

    1. 脚本面板中,从Script Location Menu(左侧的第三个工具栏按钮)中选择第一个名为 Inline 的脚本。
    2. 搜索第一个JavaScript行,或者,如果没有内联JavaScript,请从脚本位置菜单中的第一个<script>元素中选择脚本。
    3. 在脚本的第一行设置断点。
    4. 重新加载页面。