在Chrome中内联javascript重定向之前打破javascript

kru*_*ubo 86 redirect google-chrome-devtools

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

这是我尝试过的:

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

  • 输入URL,然后单击开发人员工具 - >源 - >暂停(F8)快速!它还没有重定向(是的!)现在我想在取消暂停之前禁用重定向行,但该部分甚至尚未加载到开发人员工具中.所以我会开始逐步浏览其他文件的javascript代码,直到我到达那里?但是一旦我走出其他文件javascript,它立即重定向(doh!).

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

vse*_*vik 140

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

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

  • 它工作正常,问题是调用堆栈是空的,所以它不是真的有用,因为你将无法看到实际触发重定向的内容 (16认同)
  • 我最初很高兴看到这个回复,但我可以确认它对我不起作用(即使我按照建议检查了卸载,页面重定向仍然发生,我没有机会在页面源中设置断点一个).也许它与第一页"重定向"的方式有关?在我的情况下,页面A(我试图调试其javascript的页面)执行POST(通过javascript)到页面B. (8认同)
  • @EugeneKuzmenko认真,我不知道这实际上是如何帮助任何人的 (7认同)
  • 再次感谢工作的答案.我很想知道为什么这么多关于"这不起作用"的信息投票; 这是旧Chrome版本的问题吗?可以为其无效的人提供更多信息吗? (2认同)
  • 仅当页面具有调试器可以停止的卸载或 beforeunload 处理程序时,这才有效。如果没有注册这样的处理程序,调试器将不会触发。 (2认同)

aWe*_*per 40

请执行下列操作

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

Chrome卸载断点

  • 这是行不通的。 (2认同)

Ada*_*ner 11

我有一个第三方JS库,它有一个错误的条件来重新加载页面.并且页面因此而不断重新加载.我试图找到错误代码的位置.

我试图使用"事件监听器断点"方法,但是作为评论说你在卸载事件中没有堆栈跟踪,所以它是没用的.

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

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