在URL更改或加载时执行

时间:2018-04-27 10:56:20

标签: jquery hash

我希望在哈希更改时执行一些ajax调用,但也要在初始页面加载时执行。

$(window).on('hashchange', function (e) {
     //execute this code
});
if (window.location.hash) {
  $(window).trigger('hashchange')
}

但只有在网址domain.com#hash中有哈希值时才会执行此操作。如果我加载纯URL domain.com,则代码不会被执行。

如何在有和没有哈希的情况下执行此操作? (当没有哈希加载网址时,会显示一些数据。有了显示的附加数据)。

1 个答案:

答案 0 :(得分:0)

如果您希望在页面加载后发生这种情况:

$(window).on('load', function () {
  $(window).trigger('hashchange');
});

或者如果您希望它立即发生(不是在加载后)

$(function() {
  $(window).trigger('hashchange');
});

这是不必要的

if (window.location.hash) {
  $(window).trigger('hashchange')
}

只有当存在哈希值(hashchange)时,您的代码才会触发window.location.hash。当存在哈希变换时,您将执行您的功能。

但是如果你想要,无论是否有哈希,都不需要检查它是否存在。