检测 JavaScript 中哈希符号后的 URL 更改
JavaScript 提供了检测 URL 是否已更改的方法,包括以下选项:
Onload 事件:
URL 的事件处理程序:
每秒检查 URL:
使用导航 API(适用于现代浏览器)
主要浏览器现在支持导航 API,它提供了更有效的方法来检测 URL 更改:
window.navigation.addEventListener("navigate", (event) => { console.log("location changed!"); });
旧版浏览器的自定义事件
对于没有导航 API 的旧版浏览器,可以通过修改历史对象来创建自定义事件监听器:
(() => { let oldPushState = history.pushState; history.pushState = function pushState() { let ret = oldPushState.apply(this, arguments); window.dispatchEvent(new Event("pushstate")); window.dispatchEvent(new Event("locationchange")); return ret; }; let oldReplaceState = history.replaceState; history.replaceState = function replaceState() { let ret = oldReplaceState.apply(this, arguments); window.dispatchEvent(new Event("replacestate")); window.dispatchEvent(new Event("locationchange")); return ret; }; window.addEventListener("popstate", () => { window.dispatchEvent(new Event("locationchange")); }); })();
现在,您可以使用“locationchange”事件监听 URL 更改:
window.addEventListener("locationchange", function () { console.log("location changed!"); });
以上是如何检测 JavaScript 中哈希符号后的 URL 变化?的详细内容。更多信息请关注PHP中文网其他相关文章!