【问题标题】:Stopping JavaScript code execution immediately after a redirect in Chrome DevTools在 Chrome DevTools 中重定向后立即停止 JavaScript 代码执行
【发布时间】:2017-03-13 16:15:45
【问题描述】:

我有一个场景,用户通过查询字符串接收从一个站点到另一个站点的往返重定向。

例如,用户从example-site-a.com 开始,被重定向到example-site-b.com?redirectBackTo=example-site-a.com,并通过将window.location.href 设置为查询字符串值被重定向回原始站点。

我想调试/单步调试位于第二个站点上的 JavaScript,但第二次重定向发生在眨眼之间。

说我在 example-site-b.com 上的 JavaScript 看起来像这样:

<script>
    alert("debug!");
    debugger;
    console.log("test");
</script>

alert() 不会暂停代码执行,debugger 也不起作用。我还尝试在 Chrome DevTools 中设置事件侦听器断点以在 Script First Statement 上暂停,但 console.log 语句仍然让我无法理解。

我只是想逐步了解example-site-b 上的上述代码。有什么想法吗?

【问题讨论】:

  • 是什么导致了这个重定向?它会等待所有 JS 停止运行吗?在这种情况下,您可以使用 setTimeout,以便您有时间按下 F12 按钮。如果重定向将发生在服务器端或不等待站点 b 中的 JS 完成,则您必须暂时删除重定向机制,然后手动重定向到站点 b 进行测试。
  • @Shilly 我正在使用 window.location.href 重定向到站点 B - 站点 B 在 JavaScript 中设置了一个 cookie,并立即使用 window.location.href 重定向回站点 A。
  • Script First Statement 事件断点应该可以解决问题。你能描述一下你所看到的吗?
  • @KayceBasques 眨眼间就看到站点 B 重定向到站点 A。当Script First Statement 被选中时,我可以单步执行位于.js 文件中的所有JavaScript,但不能单步执行我需要单步执行的页面&lt;script&gt; 代码。
  • @Shilly 这种疯狂的 hacky / 美丽的方法最终像魅力一样为我工作。谢谢!您能否将您的回复写为答案,以便我将其标记为“已接受”?

标签: javascript google-chrome redirect google-chrome-devtools


【解决方案1】:

alex 说 Shilly 的这个建议成功了:

是什么导致了这种重定向?它会等待所有 JS 停止运行吗?在这种情况下,您可以使用 setTimeout,以便您有时间按下 F12 按钮。如果重定向将发生在服务器端或不等待站点 b 中的 JS 完成,则您必须暂时删除重定向机制,然后手动重定向到站点 b 进行测试。

【讨论】:

    猜你喜欢
    • 2023-03-30
    • 1970-01-01
    • 2016-07-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多