103

我正在查看具有内联 javascript 重定向 ( window.location = "/anotherpage") 的页面。我想在 Chrome 中加载该页面,但禁用了重定向行,因此我可以使用该页面而不会被重定向。

这是我尝试过的:

  • 开发人员工具 -> Cog -> 常规 -> 禁用 JavaScript。加载页面。它不会重定向(耶!)。但我仍然希望页面的其余部分 javascript 运行,但它没有。

  • 输入 URL,然后单击开发者工具 -> 源 -> 暂停 (F8) 真快!它还没有重定向(耶!)现在我想在取消暂停之前禁用重定向行,但那部分甚至还没有加载到开发者工具中。所以我将开始单步执行其他文件的 javascript 代码,直到我到达那里?但是,一旦我退出其他文件 javascript,它就会立即重定向(doh!)。

这可以做到吗?我认为禁用一行javascript应该很容易,但我很难过。

4

3 回答 3

156

开发人员工具 -> 源 -> 事件侦听器断点(在右侧栏) -> 加载 -> 检查卸载

这将使调试器在导航之前调度的卸载事件上中断。

于 2012-09-14T06:39:35.957 回答
52

请执行下列操作

  1. 打开开发者工具
  2. 转到来源选项卡
  3. 查找事件侦听器断点
  4. 展开加载选项
  5. 在这里检查卸载选项

Chrome 卸载断点

于 2016-05-18T04:00:48.180 回答
12

我有一个 3rd 方 JS 库,它有一个错误的条件来重新加载页面。并且页面因此被不断地重新加载。我试图找到错误的代码在哪里。

我尝试使用“事件侦听器断点”方法,但正如评论所说,您在卸载事件中没有堆栈跟踪,所以它非常没用。

对我有用的解决方案:我创建了一个带有沙盒属性的 iframe 标记的页面,例如<iframe sandbox="allow-same-origin allow-scripts allow-popups allow-forms"></iframe>并将我的网站放入其中。这样 chrome 内部就会发生安全错误,并且控制台会显示 JS 尝试访问位置对象的位置。您可以单击它并查看代码。最好的是Chrome有一个JS解压器(源码窗口左下角的{}按钮),很聪明,打印出来后也能显示线条,所以压缩后的JS也能看到。

有关沙盒属性的更多信息:https ://developer.mozilla.org/en-US/docs/Web/HTML/Element/iframe#attr-sandbox

于 2017-04-14T11:21:39.083 回答