javascript - 删除页面 URL 中的哈希并阻止页面滚动到锚哈希
问题描述
我有两个页面,index.html 和 result.html。在 index.html 上,我在导航中有一些锚点,当它们被单击时,它们会向我的页面 Url 添加一个哈希,并将 Url 更改为此,例如:
https://example.com/index.html?SessionGuid=0edc696e-6f58-4d54-92c9-3753f5db57ae#someAnchor
在此页面中,有一个带有提交按钮的表单,当单击提交按钮时,表单值将被发送到 result.html。这会创建跳转到页面中间而不是显示页面顶部。
这就是我的 result.html 页面 Url 的样子:
https://example.com/result.html?SessionGuid=0edc696e-6f58-4d54-92c9-3753f5db57ae#someAnchor
因此,我使用此方法删除了我的 result.html 上的哈希:
history.replaceState('', document.title, window.location.origin + window.location.pathname + window.location.search);
这在 Chrome 中完美运行,哈希被删除并且页面保持在顶部。但在 FireFox 中,散列被删除,但页面仍在滚动到散列位置。
在这种行为方面,FF 和 Chrome 有什么区别?是否有解决此问题的跨浏览器解决方案?是脚本所在的位置吗?我对 jQuery 或纯 JS 持开放态度。也可以在 index.html 中的表单到达顶峰之前打开以删除散列。无论哪个是跨浏览器兼容的。
解决方案
推荐阅读
- api - EWS 托管 API:会话不是复制项目上的 IMailboxSession
- python - 从乳房 X 光检查图像中去除字母伪影
- python - 如何将列表转换为 numpy.datetime64 格式
- javascript - 如何运行基于变量值的函数,该变量值依赖于规范茉莉花中的其他函数?
- c# - 如何在 C# vs 项目中创建清单以限制 AxInterop.MSTSCLib 的 mstscax.dll 搜索路径?
- python - 错误答案测试用例跳过 Google 启动 Round E 2020 最长算术
- html - 按钮中的“NoReverseMatch”指的是在 url 中有参数的页面
- angular - 用于 PDFJS 元数据提取的 Angular Observable
- python - 如何使用 Python 从 JSON 文件中提取列表中所有对象的特定字段
- node.js - 使用聚合 MongoDB