有没有办法将页面重定向到特定的哈希值,但如果页面重新加载已经存在的哈希值,则会阻止重定向?最好用javascript?
例如:
在www.mysite.com中输入重定向到---> www.mysite.com/index.html#news
然后用户点击导航到同一页面下方的新位置的链接:www.mysite.com/index.html#articles
我想要的是在刷新时阻止重定向,这样如果用户刷新页面,它们就会保留在#articles上,而不是被重定向回#news。
本质上,重定向的唯一目的是只有在没有哈希(#)的情况下输入网址时才会将人们带到#news。
答案 0 :(得分:1)
您可以检查window.location.hash
属性并根据其值设置位置href。例如:
<script type="text/javascript">
// Redirect to "#news" if there is no hash in the URL.
if (window.location.hash == '') {
window.location.href = 'http://www.mysite.com/index.html#news';
}
</script>
顺便说一下,您似乎可以使用似乎做同样事情的window.location
或document.location
。 It is unclear which is the preferred target(窗口或文档)。
答案 1 :(得分:0)
Anchor重定向是一个仅限客户端的构造。服务器完全不知道有人点击了“#articles”这一事实 - 并且URL在他们这样做时不会改变,所以刷新总是会让你找到相同的网址。
解决方案是在点击锚链接时重写URL。您可以通过分配到window.location.href
来更改它。因此,向任何哈希锚添加一个单击处理程序,并更改URL以合并新的页内锚标记。