URL ändern ohne Reload, wie bei Facebook

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • URL ändern ohne Reload, wie bei Facebook

    Habe jetzt eine Zeit lang gegooglet und überall wird gesagt, es wäre nicht möglich die url zu ändern ohne die Seite neu zu laden. Bei Facebook scheint aber genau dies zu gehen.. Wenn man dort auf ein Photo klickt öffnet sich per javascript ein Vergrößerungsfenster und die url passt sich an. Wenn ich dann reloade kommt die Seite des Photos. (Also vorher zB Startseite mit dem Photo "drüber" und nach dem reload die eigentliche Seite).

    Wie ist das möglich?
    Danke für eure Antworten

  • #2
    Zitat von Spunk95 Beitrag anzeigen
    Bei Facebook scheint aber genau dies zu gehen.. Wenn man dort auf ein Photo klickt öffnet sich per javascript ein Vergrößerungsfenster und die url passt sich an.
    Nein, nur der Hash-Part wird angepasst. Mach dir bitte klar, dass dadurch die Adresse des Dokumentes nicht verändert wird.

    In modernen Browsern lässt sich aber wirklich die Adresse verändern, ohne zu einem anderen Dokument zu wechseln - Stichwort history.pushState & Co.
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      Also für mich sieht das nich nach nem Hash aus (wenn ich das richtig verstanden habe ist alles was hinter # ist der Hash). Bei Facebook kommt aber eine neue datei (photo.php) und einige Parameter dazu.

      history.pushState werd ich mir mal ansehen danke

      Kommentar


      • #4
        Zitat von Spunk95 Beitrag anzeigen
        Also für mich sieht das nich nach nem Hash aus (wenn ich das richtig verstanden habe ist alles was hinter # ist der Hash). Bei Facebook kommt aber eine neue datei (photo.php) und einige Parameter dazu.
        Also mein Test in Opera ergibt beim Klick auf ein Foto eine Adresse wie diese,
        http://www.facebook.com/profile.php?id=4711#!/photo.php?fbid=123456789&set=t.987654321&theater
        I don't believe in rebirth. Actually, I never did in my whole lives.

        Kommentar


        • #5
          Und wenn sich die URL ändert, passiert auch wie erwartet ein Reload, erkennbar an den gesendeten Headern (httpliveheaders) und wenn du z.B. ein Video im Hintergrund laufen lässt, dann startet es neu.

          Kommentar


          • #6
            Bei mir gibt es keinen Hash und das Video läuft auch weiter
            Weiß jetzt aber auch warum. Das mit mit dem #! Hash macht Facobook für Browser die noch kein HTML5 unterstützen (Safari scheint es zu tun).

            Ist hier ganz gut beschrieben:
            URL ändern mit Javascript ohne Reload

            Habs jetzt auch hinbekommen.

            Eine Sache aber noch: Bei Facebook wird dieser URL Wechsel nicht im Verlauf gespeichert, bei mir aber schon. Kann man das bei history.pushState irgendwie einstellen oder benutzt Facebook noch was anderes?

            Danke für eure Hilfe bis hier hin

            Kommentar


            • #7
              Zitat von Spunk95 Beitrag anzeigen
              Das mit mit dem #! Hash macht Facobook für Browser die noch kein HTML5 unterstützen (Safari scheint es zu tun).
              Opera tut's auch - aber das scheinen sie bei FB noch nicht mitbekommen zu haben.

              Eine Sache aber noch: Bei Facebook wird dieser URL Wechsel nicht im Verlauf gespeichert, bei mir aber schon. Kann man das bei history.pushState irgendwie einstellen oder benutzt Facebook noch was anderes?
              Ich schrieb nicht umsonst history.pushState & Co. - die Methode hat auch noch einen entsprechenden Verwandten.
              I don't believe in rebirth. Actually, I never did in my whole lives.

              Kommentar


              • #8
                replaceState ist perfekt!

                Danke für die Hilfe

                Kommentar

                Lädt...
                X