我在URL中使用了大量哈希来显示消息和内容,但我遇到了问题。点击会话阅读它就可以了:
但是,看看当用户将另一个哈希附加到最后时会发生什么:(由于JavaScript混淆,主题消失了)
(点击图片查看大图)
如果有第二个哈希,我怎么能删除它?我之前在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 = '#';
}
});
}
提前致谢!
答案 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
。