Ich arbeite mit der History-API und Push-und Pop-Status verwenden. Ich möchte das popstate-Event in einem Szenario stoppen, in dem ich den Hash nur an die URL angehängt habe. zum Beispiel in einigen Fällen bei Klick von Anker anfügt es #
an die URL und popstate wird sofort ausgelöst) Ich möchte alle Szenarien vermeiden, in denen #
oder #somehasvalue
an die URL angefügt ist und Popstate von feuern zu stoppen. Ich führe die URLs mit Abfrageparametern und ich habe kein Szenario, in dem ich das popstate Ereignis mit in der URL auslösen muss.Stop feuern popstate auf Hashwechsel
Hier ist mein Code.
if (supportsHistoryApi()) {
window.onpopstate = function (event) {
var d = event.state || {state_param1: param1, state_param2: param2};
var pathName = window.location.pathname,
params = window.location.search;
loadData(event, pathName + params, d.state_param1, d.state_param2);
}
Dies funktioniert nicht, wenn Sie zur ersten Seite zurückkehren, die Sie geöffnet haben. Denn dann ist der 'Zustand' auch 'Null', aber immer noch keine Hashänderung –