检测和处理位置哈希更改
使用 Ajax 和哈希导航 Web 应用程序可以在页面之间平滑过渡,而无需重新加载整个文档。但是,检测 window.location.hash 中的更改可能具有挑战性,尤其是在使用浏览器的后退按钮时。
本机浏览器支持
不幸的是,浏览器本身并不支持支持事件来检测哈希更改。当哈希值更改时,地址栏会自动更新,但 JavaScript 无法直接监视这些更改。
使用 setInterval 进行 Po 轮询
一个潜在的解决方案是使用 setInterval( ) 方法定期检查当前哈希并将其与之前的值进行比较。如果检测到差异,则可以采取必要的措施。虽然此方法有效,但效率较低,并且可能无法及时捕获所有哈希更改。
jQuery 事件抽象(更新的答案)
如果您的应用程序使用 jQuery,您可以利用其内置的事件系统。 jQuery 在窗口对象上支持“hashchange”事件,该事件抽象了浏览器特定的支持问题。
使用 jQuery 的“hashchange”事件,您可以像这样注册事件侦听器:
$(window).on('hashchange', function() { // Code to handle hash change });
在幕后,jQuery 检测对“hashchange”事件的本机支持,如果不可用,它会采用轮询机制来触发哈希更改事件。这种方法显着简化了哈希更改的处理。
以上是如何可靠地检测和处理 JavaScript 中的位置哈希更改?的详细内容。更多信息请关注PHP中文网其他相关文章!