背景:我有一个 HTML 页面,可以让您扩展某些内容。由于这种扩展只需要加载页面的一小部分,它是通过 JavaScript 完成的,而不是通过定向到新的 URL/HTML 页面。但是,作为奖励,用户可以永久链接到此类扩展部分,即向其他人发送类似的 URL
并立即为该其他用户打开“foobar”类别。这可以使用 parent.location.hash = 'foobar',所以这部分很好。
现在的问题是:当用户在页面上关闭这样一个类别时,我想再次清空URL片段,即把http://example.com/#foobar变成http://example.com/来更新永久链接显示. 但是,这样做parent.location.hash = ''
会导致整个页面重新加载(例如在 Firefox 3 中),我想避免这种情况。使用window.location.href = '/#'
不会触发页面重新加载,但会在 URL 中留下看起来有些不美观的“#”符号。那么在流行的浏览器中是否有一种方法可以在不触发页面刷新的情况下通过 JavaScript 删除包含“#”符号的 URL 锚点?