2011-11-12 27 views
0

我在網址中使用了大量哈希來顯示消息和內容,但是我遇到了問題。如何刪除用戶添加的第二個散列?

enter image description here

但是,看看當用戶把另一個哈希到底發生了什麼:當你與人交談點擊閱讀它,它是罰款(主體消失,因爲JavaScript的迷糊)

enter image description here

(點擊圖片查看大版本)

我怎樣可以刪除第二哈希如果有一個?我之前在Gmail中做過這件事,它會自動刪除它們。那麼,我怎樣才能用我的系統來做到這一點?這裏是我的哈希碼:

if (window.location.hash) { 
    var messageID = window.location.hash.replace('#!/message/', ''); 
    var msgSubject = $('#subject_' + messageID).text(); 
    //the below code checks if conversation exists 
    $.get('tools.php?type=id_check&id=' + messageID, function(data) { 
     if (data == 'true') { 
      setTimeout(function() { 
       readMessage(messageID, msgSubject); 
      }, 200); 
     } 
     else { 
      alertBox('The requested conversation does not exist.', 2500); 
      window.location = '#'; 
     } 
    }); 
} 

在此先感謝!

回答

2

您可以嘗試

var matches = window.location.hash.match(/#!\/message\/(\d+)/); 
if (matches) { 
    var messageId = matches[1]; 
    // ... 
} 

這將#!/message/後拍攝一系列唯一數字。如果散列包含#!/message/123,然後matches將是一個陣列

['#!/message/123', '123'] 

matches[1]將包含消息ID。如果在散列之前或之後有任何內容,它將被忽略。如果沒有匹配,matches將是null

+0

很酷,謝謝。將'匹配[1]'返回散列中的ID?而且,它會刪除額外的散列還是隻保留它?對不起,如果你認爲我的意思是我寧願它什麼都不做。我會編輯我的問題,如果它還沒有,那麼它會更有意義。 – Nathan

+0

@Nathan是的,查看更新 –

+0

啊,很酷,謝謝!我對regexp一無所知......他們很難讓我理解。我嘗試這樣做:'如果(hash.match('message'){'但那不起作用,可能是因爲你也需要符號,不僅僅是單詞,更正? – Nathan

相關問題