我在html页面的末尾放置了一个脚本标签:$(window).on ('hashchange', function (e) { alert (location.hash); });
如果我单击带有诸如#a
之类的href的按钮,它会起作用,但是如果我打开诸如localhost/aaa#a
之类的链接,则不会触发警报功能。
因此,看起来当文档准备好时,我必须检测到哈希的存在。但这看起来是错误的。
有没有办法让它在两种情况下都能正常工作?
最佳答案
您必须在页面加载时手动触发事件。仅当用户直接采取行动时,事件才会被触发。
由于它是页面加载,用户没有任何操作,因此不会触发on hashchange事件。
$(window).on('hashchange', function (e) {
alert(location.hash);
}).trigger('hashchange');
如果仅在存在哈希值时才触发事件,则
$(window).on('hashchange', function (e) {
alert(location.hash);
});
if (window.location.hash) {
$(window).trigger('hashchange')
}