Wie kann ich auf URL-Änderung in jQuery triggern?

Lesezeit: 1 Minute

Benutzer-Avatar
Tarida George

Wie kann ich eine Funktion auslösen, wenn sich die URL ändert? Ich versuche so etwas wie:

$(windows.location).change(function(){
   //execute code
});

Meine URL ist also so etwas wie http://www.mysite.com/index.html#/page/1. Wie kann ich jQuery- oder JavaScript-Code ausführen, wenn die URL so etwas wie wird http://www.mysite.com/index.html#/page/2?

  • Es gibt bereits viele Fragen wie Ihre.. stackoverflow.com/search?q=jquery+hash+changed

    – Michael Klouda

    10. September 2012 um 10:39 Uhr

Das wäre ein hashchange Veranstaltung, also würde ich vorschlagen:

$(window).on('hashchange', function(e){
    // do something...
});

JS Fiddle-Demo.

Verweise:

  • Uncaught TypeError: Object # has no method ‘on’ Ich denke, dieser Fehler tritt auf, weil meine URL wie index.php#/page/1 smt ist

    – Tarida George

    10. September 2012 um 17:59 Uhr


  • Welche Version von jQuery verwendest du? on() ist ab Version 1.7+ verfügbar, ältere Versionen sollten verwendet werden delegate()aber ohne weitere Infos kann ich das nicht sagen.

    – David Thomas

    10. September 2012 um 18:21 Uhr

  • Versuchen Sie die hashchange Veranstaltung, die genau dafür gebaut wurde – http://benalman.com/projects/jquery-hashchange-plugin/

    var current_href = location.href;
    setInterval(function(){
        if(current_href !== location.href){
            // if changed Do ...
            current_href = location.href;
        }else{
            // Do ...
        }
    },500);
    

    Das hat bei mir funktioniert^^

    $(window).on(‘hashchange’) // wird nicht ausgelöst

    Um URL-Änderungen nur für Pop-Nutzung zu erkennen

    window.onpopstate = Funktion (Ereignis) { //enter code here
    }

    1055340cookie-checkWie kann ich auf URL-Änderung in jQuery triggern?

    This website is using cookies to improve the user-friendliness. You agree by using the website further.

    Privacy policy