我有这个远程html页面,我需要调试一些javascript错误。我没有访问该页面所以我不得不求助于FF调试器。在那里,我在body
onLoad
上调用了js函数,如下所示:
<body onLoad="someFunction();" id="bd" class="fs3 FF" >
我想以某种方式跨过它或用它替换它:
<body id="bd" class="fs3 FF" >
我怀疑someFunction()
正在打破其他onload事件,因为我收到了未定义的错误,它就是这样。调试这个的最佳方法是什么?
我对JS调试相当新,但我尝试在此行设置断点,但他们总是进入本文档中的js代码。有什么建议吗?
更新:由于该网站属于我的某个客户,因此我无法访问它。他宁愿让我调试并建议他修复而不是提供访问权限!
答案 0 :(得分:0)
我怀疑someFunction()正在破坏其他onload事件
损坏的onload
属性不会阻止调用其他加载回调(例如,通过addEventListener
连接)(proof)。但是你在评论中已经说过你希望能够消除它作为一个可能的原因,所以:
如果页面上有任何script
元素,您可以这样做:
找到第一个script
元素。
查找该元素中的第一行代码(直接在其中或在其引用的文件中)。
在该行上设置断点。
重新加载页面,该页面应触发断点。
在控制台中输入:
document.body.onload = null;
单击“继续”按钮以允许代码运行。
#5中的代码将删除属性创建的处理程序。 (它不会删除属性,但是没有必要。如果你真的想要,将 document.body.removeAttribute("onload");
添加到上面。)因为你的断点位于脚本的第一行,它会在load
事件触发前被击中。