检测网址更改的特定部分



我在检测我的网址上的更改时遇到问题,问题是,我在#之后使用相同的网址的第一部分,示例

mySite.com/masterPage.html#pageView=employee&employeeCode=10

如果我用 window.onhashchange = function(); 侦听更改,如果我只是将 url 更改为

 mySite.com/masterPage.html#pageView=student

因为哈希一直和以前一样,所以任何想法如何检测网址更改时的页面视图变化

用jQuery做,对我来说很好用。

$(window).on("hashchange", function(){
    alert('change');
});

经过测试 mySite.fr/#toto 和 mySite.fr/#tototata锚点更改时触发事件。

如果您使用链接更改 URL 哈希,则使用 onhashchange 没有问题,因为有一个操作可以更改它(锚点或脚本)。看看这个:https://jsfiddle.net/FrancescoRombecchi/jxbq7epg/1/

<body onhashchange="myFunction()">
<p>Click the button to change the anchor part of the current URL to #part5</p>
<button onclick="changePart()">Try it</button>
<a href="#prova">Go to hello</a>
<hr>
<p id="demo"></p>
<p id="hello">hello<p>
<script>
function changePart() {
    location.hash = "part5";
    var x = location.hash;
    document.getElementById("demo").innerHTML = "The anchor part is now: " + x;
}
// Alert some text if there has been changes to the anchor part
function myFunction() {
    alert("The anchor part has changed!");
}

</script>
</body>

但是,如果您直接对 url 进行数字处理,则没有任何操作可以引发事件,因此无法使用 onshashchange 函数。相反,请使用cookie保存最后一个哈希值并检查它是否已更改。

再见

相关内容

  • 没有找到相关文章

最新更新