2011-06-06 81 views
0

有什麼方法可以將頁面重定向到特定的哈希,但是如果頁面重新加載時已經存在哈希,阻止重定向?最好用JavaScript?使用哈希標記時阻止頁面重定向

例如:在www.mysite.com

打字重定向到---> www.mysite.com/index.html#news

然後用戶點擊導航到一個新的鏈路位置進一步下降到同一頁面:www.mysite.com/index.html#articles

我想要的是防止刷新時重定向,以便如果用戶刷新頁面,他們留在#articles而不是被重定向備份到#新聞。

實質上,重定向的唯一目的是隻有當網址輸入時沒有散列(#)才能讓人們瀏覽#news。

回答

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.locationdocument.location這似乎做同樣的事情。 It is unclear which is the preferred target(窗口或文檔)。

+0

工作就像一個魅力 – Robert 2011-06-08 09:30:26

0

錨重定向是一個客戶端的構造。服務器完全不知道有人點擊了「#articles」 - 並且URL在這種情況下不會改變,因此刷新將始終將您引導到您所在的相同URL。

解決方案是在點擊錨鏈接時重寫URL。您可以通過分配到window.location.href來更改它。因此,將點擊處理程序添加到任何哈希定位點,並更改網址以合併新的頁內定位點標記。