gpt4 book ai didi

javascript - 如何跟踪 javascript 行为的起源,特别是 - 将哈希添加到我的 url

转载 作者:行者123 更新时间:2023-11-28 06:51:18 25 4
gpt4 key购买 nike

有人编写了一些错误的代码,导致哈希值被添加到我们网站上某些网址的末尾。这还会产生一个额外的历史记录项,而没有哈希值,因此用户在只需要回击一次的情况下必须回击两次。

在 Chrome 的开发者控制台中,我尝试在 Elements 和所有 Sources (ctrl-shift-f) 中搜索“history”(仅使用一次,没有明显相关),以及“#”、“hash”和其他事情,我还没有找到什么是将哈希符号添加到网址并更改历史记录。

有什么办法可以追踪这个吗?

编辑:

我尝试在 Chrome 的 Sources 选项卡中设置断点,选中 Event Listener Breakpoints/Load/hashchange 下的框。但 chrome 并没有停止。我不知道为什么。

但是以下代码确实可以在 hashchange 处停止脚本执行。

我在添加哈希之前在 Chrome 中设置了一个断点,然后在控制台中添加了以下内容:

jQuery(window).on('hashchange',function(){ 
debugger;
});

然后我继续执行脚本,它再次暂停,大概是在添加哈希之后(现在就在那里)。

现在如何查看当前的执行状态?谁触发了哈希更改?

最佳答案

将此行 JS 添加到始终执行的位置:

jQuery('a').on('click',function( e ) { 
e.preventDefault();
});

或者使用以下命令跟踪特定的 a 元素:

jQuery('a').on('click',function( e ) { 
console.log(this);
});

但即使你跟踪它,你也无法做任何事情,因为如果你删除 href="#",点击“a”将刷新页面,所以你无论如何都需要阻止“a”标签的默认行为

关于javascript - 如何跟踪 javascript 行为的起源,特别是 - 将哈希添加到我的 url,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32941587/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com