谷歌浏览器:调试谁改变了document.location.hash

4
我正在分析一个网站,在页面加载后几秒钟,document.location.hash发生了变化。这似乎是一些异步操作。是否可以通过Chrome检查器调试更改哈希的人?
目前我只添加了一个“watch”,但它没有断点。
谢谢!
1个回答

8
您可以为“hashchange”启用事件侦听器断点:

Enabling an event listener breakpoint

截至2019年第四季度,此功能存在于“源”选项卡中,名为“事件侦听器断点”的面板中。

当代码更改location.href时,Chrome会停在此事件的处理程序处:

The Chrome stopped at a handler for "hashchange" due to a change

您现在可以使用“调用堆栈”面板查看原因。

仅当已经存在hashchange的事件处理程序时才有效。

假设您的代码中还没有这样的事件处理程序,请创建一个事件处理程序,如下所示:

window.addEventListener("hashchange", function(e) {
    debugger;
});

谢谢,太棒了。 昨天我搜索了它,但没有找到。 - Merlinox
大家好,如果你在2019年Q4看到这篇帖子,现在它已经移动到Chrome开发工具中“sources”选项卡下的“Event Listener Breakpoints”面板中了。 - Angus Grant
请原谅,但是这个东西是如何“移动”到这个面板的?请看被接受的帖子中的第一张截图,它已经位于名为“事件监听器断点”的“源”面板中。没有任何改变。 - try-catch-finally

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接