Firefox调试器:逐步调试html代码

时间:2015-08-26 05:35:38

标签: javascript debugging

我有这个远程html页面,我需要调试一些javascript错误。我没有访问该页面所以我不得不求助于FF调试器。在那里,我在body onLoad上调用了js函数,如下所示:

<body onLoad="someFunction();" id="bd" class="fs3 FF" >

我想以某种方式跨过它或用它替换它:

<body id="bd" class="fs3 FF" >

我怀疑someFunction()正在打破其他onload事件,因为我收到了未定义的错误,它就是这样。调试这个的最佳方法是什么?

我对JS调试相当新,但我尝试在此行设置断点,但他们总是进入本文档中的js代码。有什么建议吗?

更新:由于该网站属于我的某个客户,因此我无法访问它。他宁愿让我调试并建议他修复而不是提供访问权限!

1 个答案:

答案 0 :(得分:0)

  

我怀疑someFunction()正在破坏其他onload事件

损坏的onload属性不会阻止调用其他加载回调(例如,通过addEventListener连接)(proof)。但是你在评论中已经说过你希望能够消除它作为一个可能的原因,所以:

如果页面上有任何script元素,您可以这样做:

  1. 找到第一个script元素。

  2. 查找该元素中的第一行代码(直接在其中或在其引用的文件中)。

  3. 在该行上设置断点。

  4. 重新加载页面,该页面应触发断点。

  5. 在控制台中输入:

    document.body.onload = null;
    
  6. 单击“继续”按钮以允许代码运行。

  7. #5中的代码将删除属性创建的处理程序。 (它不会删除属性,但是没有必要。如果你真的想要, document.body.removeAttribute("onload");添加到上面。)因为你的断点位于脚本的第一行,它会在load事件触发前被击中。