2016-03-15 4 views
0

У меня возникают проблемы обнаружения изменений на моем URL, проблема заключается в том, что я использую ту же первую часть URL после #, например,Обнаружить определенную часть изменения URL-адреса

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

Если я слушаю изменения с окном .onhashchange = function(); , Он не обнаруживает изменения, если я просто изменить URL для

mySite.com/masterPage.html#pageView=student 

Поскольку хэш остался такой же, как и раньше, какие-либо идеи, как обнаружить изменение связанных с просмотрами страниц на изменение URL-адреса

+0

Если вы вызываете изменение, можете ли вы его не отслеживать? – Ukuser32

ответ

0

Делайте это с JQuery, отлично работает для меня ,

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

Испытано ти mySite.fr/#toto и mySite.fr/#tototata Event был уволен, когда якорь изменился.

+0

Прочитайте вопрос, который не обнаружит, если первая часть после # останется той же – noitse

+0

, прочитайте ответ, я проверил свое решение с #toto и #tototata. Первая часть тототаты - это то, не так ли? –

+0

Я только что проверил с # pageView = employee & employeeCode = 10 и # pageView = student, снова работает отлично. –

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> 

Но, если вы цифра непосредственно URL-адрес не существует никаких действий, которые могут подняться событие так, что невозможно использовать onshashchange функцию. Вместо этого используйте файл cookie для сохранения последнего хеша и проверьте, не изменилось ли оно.

Bye