如何删除用户添加的第二个哈希?

时间:2011-11-12 05:54:10

标签: javascript jquery hash

我在URL中使用了大量哈希来显示消息和内容,但我遇到了问题。点击会话阅读它就可以了:

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 = '#';
        }
    });
}

提前致谢!

1 个答案:

答案 0 :(得分: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