2011-01-16 18 views
0

Ich habe keine eigenen "Ideen" dabei.Adressleiste bearbeiten/ändern

Ich habe einen Album-Viewer. Wenn Sie auf "Weiter" klicken, möchte ich, dass die Adressleiste nicht mehr reagiert. Wenn Sie beispielsweise mit "Foto-ID = 1" beginnen, klicken Sie auf "Weiter" (nächstes Bild hängt und stopft), und dann möchte ich sagen: "Foto-ID = 2".

Jetzt kann ich es nicht sagen sagen? Photoid = 2 ohne zu ändern/zu manipulieren, und das können Sie ohne HTML5 tun.

Ich habe ein Skript in HTML5 gemacht, die gut funktioniert, aber dann muß ich die kümmern, die HTML5 nicht hat (nur Chrom, ff4 usw. unterstützt html5) das Skript von diesem gemacht (https://developer.mozilla.org/en/DOM/Manipulating_the_browser_history)

Ich dachte daran, # photoid = 2 so hinzuzufügen,? Photoid = 1 # photoid = 2 und dann prüfen, ob es etwas in # gibt dann verwenden Sie das anstelle von $ _GET .. Aber anscheinend können Sie das nicht tun, da # Client-Seite behandelt wird und nie an den Server gesendet.

Was soll ich dann tun?

Irgendwelche Vorschläge bitte, um eine Umgehungslösung dies zu machen? Ich überprüfte Facebook, was sie mit IE-Nutzern gemacht haben, und ich konnte hören, dass es zweimal geklickt hat (der lästige Klick-Sound von IE). Der erste war, zum nächsten Bild zu kommen, der zweite Klick-Sound veränderte die Adressleiste ?! (Wie?).

Und dann dachte ich auch hey, html5 wird nur in ff4 unterstützt, und ich habe ff3.6, und sie manipulieren die Adressleiste URL, wenn Sie durch die Albumfotos, genau wie ich wollte (und was ich habe) geschrieben für aber es funktioniert nur in Chrome und ff4 ..?). Wie konnten sie das tun?

Antwort

0

Ich bin mir nicht ganz sicher, ob Sie Ihr Recht verstanden haben, aber hier ist, was ich für ein ähnliches Problem hatte.

Warum stellen Sie nicht einfach die URL ein, indem Sie die location.hash so bearbeiten, wie Sie es gesagt haben, damit sie so aussieht: www.mydomain.com/photos/#photoid=2.

Nun, wenn jemand diese URL ruft der Browser versuchen www.mydomain.com/photos/ zu laden und die notwendige Markup aber nicht das Foto bekommen und was Sie jetzt tun können, lesen wird, um die location.hash (die zurück photoid = 2) und laden Sie das Bild über AJAX, indem Sie eine Anfrage an den Server mit einem Pfad wie "www.mydomain.com/photos/" + location.hash senden

1

Der Hash ist die einzige Möglichkeit, die URL zu ändern ohne die Seite, auf der Sie sich befinden, automatisch zu aktualisieren. Deshalb ist es historisch ein Anchor-Tag (der Hash). Alles andere weist Ihren Browser an, auf eine andere Seite zu wechseln. Wenn Sie nicht wollen, dass es weiterleitet, werfen Sie einen Hash ein und lesen Sie diesen Hash mit Javascript und machen Sie, was Sie wollen. Es ist einfach mit jQuery, oder Sie könnten in Asual's swf address js library oder jQuery's Hash Tag Change Listener Plugin graben, wenn Sie Ihre Browser zurück/vorwärts-Taste verwenden möchten, um durch Ihre Verlaufsstatus zu gehen.

Verwandte Themen