2013-01-18 39 views
2

現在如果我有使用多個鏈接添加到URL的哈希:檢查和使用window.location.hash

Options 1: 
<a href="javascript:;" onClick="window.location.hash+='A'">Option A</a> 
<a href="javascript:;" onClick="window.location.hash+='B'">Option B</a> 
<a href="javascript:;" onClick="window.location.hash+='C'">Option B</a> 

Options 2: 
<a href="javascript:;" onClick="window.location.hash+='1'">Option 1</a> 
<a href="javascript:;" onClick="window.location.hash+='2'">Option 2</a> 
<a href="javascript:;" onClick="window.location.hash+='3'">Option 3</a> 

Options 3: 
<a href="javascript:;" onClick="window.location.hash+='X'">Option X</a> 
<a href="javascript:;" onClick="window.location.hash+='Y'">Option Y</a> 
<a href="javascript:;" onClick="window.location.hash+='Z'">Option Z</a> 

只要點擊任何一個,它會不斷增加的URL。有沒有辦法檢查當前的散列是否已經存在(例如,如果散列字符串中的第三個字符,則用當前的散列替換)。任何幫助將非常感謝!我試圖完成一個最終的結果,它看起來像下面即使用戶反覆去選擇選項之間:

http://mydomain.com/question-page#A3Y 

回答

3

改變它+=來連接:

window.location.hash+='A'; 

我會做一些像下面這樣:

var option1 = ""; 
var option2 = ""; 
var option3 = ""; 

首先,對於每一個可能的選項創建變量

接下來,創建將設置散列函數:

function generateHash() { 
    window.location.hash = option1 + option2 + option3; 
} 

最後,只是設置每個在onclick事件的選項,以及生成哈希:

<a href="javascript:;" onClick="option1 = 'A'; generateHash();">Option A</a> 
... 
<a href="javascript:;" onClick="option2 = '1'; generateHash();">Option 1</a> 
... 
<a href="javascript:;" onClick="option3 = 'X'; generateHash();">Option X</a> 
+0

這樣的作品,雖然有沒有一種方法來檢查當前的散列並替換它是否存在?問題是在我上面的例子中,有人可以選擇所有3個選項,它只是繼續添加到URL – taylor

+0

,那麼你應該通過一個函數來執行替換。注意,你有jQuery的標籤,但你沒有在你的文章jQuery,所以你應該刪除該標籤。 – kennypu

+0

對不起,編輯出來。我認爲jquery可能有我需要的解決方案。 – taylor

相關問題