检测网址更改的特定部分

时间:2016-03-15 15:47:54

标签: javascript jquery url hashchange

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

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

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

,它不会检测到更改
 mySite.com/masterPage.html#pageView=student

因为哈希与以前保持一致,所以任何想法如何检测url上的pageView更改

2 个答案:

答案 0 :(得分:0)

用jQuery做,对我来说很好。

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

测试了mySite.fr/#toto和mySite.fr/#tototata 当锚更改时,事件被触发。

答案 1 :(得分:0)

如果使用链接更改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>

但是,如果您直接对数字进行数字处理,则没有可以使事件发生的操作,因此无法使用onsh​​ashchange函数。而是使用cookie来保存最后一个哈希并检查它是否已更改。

再见