如何检查 JavaScript 中的 URL 是否已更改?例如,使用 AJAX 的 GitHub 等网站将在 # 符号后附加页面信息以创建唯一的 URL,而无需重新加载页面。检测此 URL 是否更改的最佳方法是什么?
onload
在现代浏览器(IE8+、FF3.6+、Chrome)中,您只需hashchange在window.
hashchange
window
在一些旧浏览器中,您需要一个不断检查location.hash. 如果您使用的是 jQuery,那么有一个插件可以做到这一点。
location.hash
下面我撤消任何 URL 更改,以保持滚动:
<script type="text/javascript"> if (window.history) { var myOldUrl = window.location.href; window.addEventListener('hashchange', function(){ window.history.pushState({}, null, myOldUrl); }); } </script>
请注意 ,上面使用history的 -API 在 Chrome、Safari、Firefox 4+ 和 Internet Explorer 10pp4+ 中可用
history