秋季,黑彤彤的平棼扒开绿叶往中瞧;小黑灯笼似的枣子挂谦了枝头;像紫玛瑙的葡萄一串串天挂正在葡萄架下,真诱人呀!
最近一直在写单页模版,需要使用 js 来监听浏览器地址栏中 url 地址的变化,并做出相应的改变。而这篇文章就来说一说,使用用 JS 代码来监听浏览器地址栏URL地址的变化的方法。
js onhashchange 事件
当前的url地址发生改时(锚点部或参数部分),可以触发 js 中的 onhashchange 事件。
以调用都可以触发 js 的 onhashchange 事件
1、使用不同书签导航到当前页面(使用"后退" 或"前进"按钮)
2、点击链接跳转到书签锚
3、通过设置Location 对象 的 location.hash 或 location.href 属性修改锚部分。
js 监听url址改变的方法好代码教程
例1:直接输写方法
js代码:
<script> window.onhashchange = function () { console.log('URL发生变化了'); }; </script>
例2:在html标签中调用
html代码:
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> </head> <body onhashchange="myFunction()"> <script> function myFunction(){ console.log('url地址被改变了'); } </script> </body> </html>
补充说明:
下面是两个网上流行的示例,大家参考一下吧!
1、使用 addEventListener 事件
js代码:
<script> window.addEventListener("hashchange", myFunction); function myFunction() { //要实现的逻辑 } </script>
2、带有浏览器是否支持 onhashchange 事件的例子
js代码:
<script> function hashChangeFire() { //url改变,调用逻辑 } // 判断浏览器是否支持onhashchange事件 if (('onhashchange' in window) && ((typeof document.documentMode === 'undefined') || document.documentMode == 8)) { window.onhashchange = hashChangeFire; } else { // 如浏览器不支持onhashchange事件,则用定时器检测的办法 setInterval(function () { // isHashChanged() 为要检测url是否被改变的函数 var ischanged = isHashChanged(); if (ischanged) { hashChangeFire(); //如被改变,设用函数 } }, 150); } </script>
本文用JS如何实现监听URL地址变化的好代码教程到此结束。我们人这一辈子不是别人的楷模,就是别人的借鉴。小编再次感谢大家对我们的支持!