Ich möchte eine Javascript-Funktion auslösen, wenn window.location.href
Verknüpfungsänderungen. Ist es möglich?
Etwas wie das:
$(window.location.href).on('change', function(){
doSomething();
});
Puchacz
Ich möchte eine Javascript-Funktion auslösen, wenn window.location.href
Verknüpfungsänderungen. Ist es möglich?
Etwas wie das:
$(window.location.href).on('change', function(){
doSomething();
});
elzi
Du sagtest ‘etwas wie‘, angesichts des Beispielcodes, nach dem Sie wahrscheinlich suchen onbeforeunload
Ereignishandler.
Von dem Mozilla-Dokumentation:
window.onbeforeunload = function(e) {
return 'Dialog text here.';
};
Beachten Sie, dass einige Standortereignisse wie Hashchange oder Verlaufsmanipulation nicht erkannt werden.
– Cregox
14. Mai 2017 um 1:41 Uhr
ashwin1014
Das Hashchange-Ereignis tritt auf, wenn Änderungen am URL-Ankerteil vorgenommen wurden, dh nach dem #
window.addEventListener('hashchange', function() {
alert("Hash Changed");
});
Dies ist eine Nur-Code-Antwort. Nur-Code-Antworten können gültig sein, werden aber automatisch als von geringer Qualität gekennzeichnet. Bitte fügen Sie eine kurze Erklärung hinzu, warum dieser Code funktioniert oder was der Fehler war. -Aus Bewertung
– Erik A
12. Oktober 2017 um 10:09 Uhr
Es gibt kein integriertes Ereignis, das bei allen URL-Änderungen ausgelöst wird. mal sehen warum:
window.addEventListener('hashchange',listener)
window.addEventListener('popstate', listener);
pushState()
oder replaceState()
Veranstaltung. Nutzlos für SPA Websites.window.onbeforeunload()
Also, gibt es einen Weg?
Ja, verwenden Mutationsbeobachter:
let previousUrl = "";
const observer = new MutationObserver(() => {
if (window.location.href !== previousUrl) {
console.log(`URL changed from ${previousUrl} to ${window.location.href}`);
previousUrl = window.location.href;
// do your thing
}
});
const config = { subtree: true, childList: true };
// start observing change
observer.observe(document, config);
Das Änderungsereignis wird nur bei einigen Eingabeelementen ausgelöst (textarea, select, input)
– Brennan
6. November 2014 um 21:08 Uhr
Ich vermute, er fragt das, weil er die URL spontan ändert. Ich habe diese Frage aus einem ähnlichen Grund gefunden.
– Achse
16. Januar 2015 um 18:14 Uhr