2011-11-12 15 views
0

私はメッセージやものを表示するために私のURLにたくさんのハッシュを使用していますが、問題があります。ユーザーが追加した2番目のハッシュを削除するにはどうすればよいですか?

enter image description here

しかし、ユーザーが最後に別のハッシュを接続するときに何が起こるか見て:それはあなたがそれを読むために会話をクリックすると罰金です(JavaScriptが混乱してしまいますので、被写体が消える)

enter image description here

はどのようにして第2のハッシュ場合は、1つがあることを削除することができます(大きなバージョンを表示するには画像をクリックしてください)?以前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

あなたはこれが#!/message/後にのみ一連の数字をキャプチャします

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

を試すことができます。ハッシュが#!/message/123が含まれている場合、matchesアレイ

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

のでmatches[1]メッセージIDを含むことになるであろう。ハッシュの前後に何かがある場合、それは無視されます。一致するものがない場合、matchesnullとなります。

+0

ありがとう、ありがとう。 'は一致します[1]'はハッシュにあるIDを返しますか?そして、余分なハッシュを削除するか、そのまま保持しますか?申し訳ありませんが、私はそれを意味すると思ったら、私はむしろ何もしません。私は私の質問を編集して、それがまだない場合はもっと意味をなさせるでしょう。 – Nathan

+0

@Nathanはい、アップデートを参照してください –

+0

ああ、ありがとう!私は正規表現について何も知らない...彼らは理解するのが難しい。私はこれをやってみました: 'if(hash.match( 'message'){'しかし、うまくいきませんでした。おそらく単語だけでなくシンボルも必要なのでしょうか? – Nathan

関連する問題