如何在哈希位置更改时触发事件

How to trigger an event when hash location changes

本文关键字:事件 哈希 位置      更新时间:2023-09-26

我试图使用方法 onhashchange 在我的 url 内的哈希更改时触发事件。我称之为它,但它似乎从未被执行过。

我尝试了以下方法。

$(function () {
    window.addEventListener("onhashchange", function () {
        alert("Here");
    });
    window.onhashchange = function () {
        alert("Changed");
    }
)};
有什么

理由不调用这些函数吗?

你应该在你的第一个例子中写"hashchange"而不是'onhashchange'。

这段代码对我来说很好用,至少在 Chrome 中是这样:

window.addEventListener('hashchange', function(e){
    console.log('changed');
})

下面是简短的代码片段:https://jsfiddle.net/bm8jjwmq/

if ("onhashchange" in window) {
    alert("The browser supports the hashchange event!");
}

▲ 用于支持//▼ 实施

function locationHashChanged() {
    if (location.hash === "#somecoolfeature") {
        somecoolfeature();
    }
}
window.onhashchange = locationHashChanged;

来源: https://developer.mozilla.org/en-US/docs/Web/API/WindowEventHandlers/onhashchange