URL bei dynamischem Inhalt ändern

xxxStream

Grünschnabel
Moin,

ich arbeite derzeit an einem Projekt, bei dem ich völlig unterschiedliche Hintergrundbilder für eine Homepage nutzen möchte. Ein "harter" Übergang kommt hier - wie schon gesagt - zu hart. Daher möchte ich auf einen FadeOut / FadeIn-Effekt setzen. Das funktioniert mit Scriptaculous schon richtig gut, auch der neue Inhalt wird geladen. Für Benutzer, die Javascript deaktiviert oder nicht verfügbar haben, sind die Links ganz normal im <href>-Tag eingetragen, das Script gibt nach dem Ausführen false zurück, sodass der Browser dem Link nicht folgt. Dadurch kann auch jede Unterseite der Präsenz einzeln aufgerufen werden (über index.php?content=content_id).

Das möchte ich eigentlich auch so (oder in ähnlicher Form) beibehalten, eben um Nutzern die nicht über Javascript verfügen die Homepage nicht zu verwehren sowie die Möglichkeit zu bieten, auf einer speziellen Seite zu starten.

Nun zum Problem: Wenn ich den Inhalt dynamisch ändere, ändert sich natürlich die URL in der Adresszeile nicht. Und genau hier liegt das Problem. Das macht natürlich das versenden von Links sowie das Bookmarking völlig unmöglich. Nun habe ich fast den halben Tag im Internet gesucht, aber alles was ich gefunden habe war die Möglichkeit, den Hash der URL zu verändern. Dann hätte der User einen Link wie "index.php?content=start_content#aktueller_content. Speichert er diesen Content, kann er da nichtmehr zurück, da ich das mit PHP ja nicht auslesen kann... (natürlich, ich könnte auch hier Javascript einsetzen, aber angenommen er schickt den Link an einen Freund, der kein Javascript einsetzt ists schon wieder blöd...).

Grundsätzlich hätte ich jetzt vermutlich gesagt ich habe da wohl Pech. Aber da gibt es ja noch Facebook... Und Facebook kann das. Auch wenn überall im Internet steht es geht nicht (was ich auch grundsätzlich nachvollziehen kann, der Sicherheit wegen). Was ich nicht nachvollziehen kann, ist dass der Teil hinter dem ? nicht auch geändert werden kann. Das ist ja sowieso nur eine interne Sache. Facebook macht das auch in der Bildergalerie. Klicke ich dort auf ein Bild, um das nächste zu sehen, wird dieses Geladen, ohne den Rest der Seite neu zu laden - und der Link wird angepasst. Eine Raute für den Hash-Teil ist nicht drin, die URL wird im Bereich hinter dem ? geändert.

Weiß jemand von euch, wie ich das bewerkstelligen kann? Oder eine andere Möglichkeit für die gewünschte Funktionalität?
 
Was du über Facebook sagst, kann ich nicht reproduzieren. Klicke ich dort auf das Foto, ändert sich lediglich der Teil nach dem Hash. Kopiere ich diesen Link und rufe ihn ohne JavaScript wieder auf, lande ich auf meiner persönlichen Seite und nicht bei dem Foto.
Damit wäre widerlegt, dass Facebook das kann.
Vielleicht hast du nur nicht richtig hingeguckt, denn hinter dem Hash sieht das etwa so aus
#!/photo.php?fbid=...
und da kann sich natürlich hinter dem Fragezeichen etwas ändern.

Edit: Die Schreibweise mit dem Ausrufezeichen ist afaik von Google eingeführt worden.
http://code.google.com/web/ajaxcrawling/docs/getting-started.html
 
Was du über Facebook sagst, kann ich nicht reproduzieren. Klicke ich dort auf das Foto, ändert sich lediglich der Teil nach dem Hash. Kopiere ich diesen Link und rufe ihn ohne JavaScript wieder auf, lande ich auf meiner persönlichen Seite und nicht bei dem Foto.
Damit wäre widerlegt, dass Facebook das kann.
Vielleicht hast du nur nicht richtig hingeguckt, denn hinter dem Hash sieht das etwa so aus

mmmmmmh... kurios... Habe deinen Beitrag vorhin während der Vorlesung gelesen, und gerade mal schnell zum Nachbarn rübergeschielt der gerade auf Facebook online war. Du hast recht. Da steht home.php? und dann erst #!/photo.php...

ABER: dennoch habe ich mich nicht verguggt: Wenn ich Facebook bei mir auf meinem Rechner (MacBook Pro bzw. MacMini mit Safari) öffne, sieht die URL in der Fotogalerie so aus:
facebook.com/photo.php?pid=1278&id=1420804&fbid=148615136
(Hinw.: Zahlen beliebig gekürzt, damit nicht nachvollziehbar).
Und der ändert sich definitiv bei einem neuen Bild OHNE einen Seitenreload...

Habe das Ganze jetzt zusätzlich noch im Firefox getestet (auch unter OS X). Jetzt wirds total kurios... Hier ändert sich auch die URL ohne ein Hash-Zeichen, aber MIT Reload der Seite... also hier scheint das nicht zu funktionieren...


Hat denn jemand eine Idee, wie man die gewünschte Funktionalität sonst erreichen kann? Sinn und Zweck der Sache ist eben, dass die Homepage komplett über PHP erreichbar und aufrufbar bleibt, in der JS-Variante aber die URLs so sind, dass Sie beim speichern oder verschicken direkt von PHP interpretiert werden können und somit direkt die richtige Seite geliefert wird (ab da soll dann wieder JS übernehmen, sofern aktiviert und dann das selbe Spiel mit den Links eben)...
Ich denke mal ihr wisst was ich meine...
 
Zuletzt bearbeitet:
Zurück