Ich habe eine Los der Arbeit mit der Geschichte und mit dem Hash. Fast alle vorhandenen Historien-Plugins haben eine Art Lücke in ihnen. Die, die ich verwendet habe, die ziemlich nah an der Perfektion ist, ist dies eine, die ein jQuery-Plugin ist:
http://www.mikage.to/jquery/jquery.history.js
im März dieses Jahres wurde aktualisiert behandelt IE 8 Fragen und befasst sich auch ziemlich erfolgreich mit IE6. Eine Sache, die ich bemerkt habe ist, dass IE wirklich hasst? im Hash nach dem #. Es hört auf, den Hash korrekt zu behandeln, wenn der? ist anwesend. Selbst dieses hier, denke ich, braucht einen kleinen Patch für die?, Ich muss das wirklich nach Mikage schicken. Die Art und Weise zu handhaben ist statt location.hash
im Plugin zu verwenden, wenn der Hash-Referenzierung, verwenden Sie diese Funktion:
function getHash(loc) {
loc = loc.toString();
if (loc.indexOf("#") != -1)
return loc.substring(loc.indexOf("#"));
else return "";
}
So in den Stellen, wo Sie den Hash benötigen, übergeben location
um die Funktion ...
getHash(location)
... anstelle von location.href. Beachten Sie jedoch, dass Sie für den IE den iframe verwenden möchten und stattdessen iframe.location verwenden möchten.
getHash(iframe.location)
Yahoos Bug
Sie können sehen, dass Yahoo nicht behandelt graziös 's in IE, wenn unter dieser URL suchen:
http://developer.yahoo.com/yui/examples/history/history-tabview.html#tabview=tab1?7236471234
Es sollte das einfach ignorieren nicht existierendes Modul, (was es für andere Namen tut, die keine haben?). Aber es wirft einen JavaScript-Fehler auf, wenn ein? ist in der URL.
(Ich werde diese Liste in einem Moment verlängern)
Wirklich einfach Geschichte
Ehrlich gesagt, es scheint primäres Problem ist ruhend es zu sein gegangen. Ich habe this issue erlebt und wollte einfach nicht durchlöchern:
Auch, obwohl keine Änderungen auf der Seite stattfinden angezeigt, während ich rückwärts durch die Geschichte reisen, die zurück Funktionalität zurück, sobald ich die Seiten, die ich zuvor navigiert hatte, schlug vor dem RSH. Also, wenn ich auf vier Links in der RSH-Seite geklickt hat, zurück Funktionalität wird nach zurückgeben Ich habe auf die Zurück-Taste vier mal geklickt. Ich hoffe das ergibt Sinn.
+1 für die Lücken, aber noch wichtiger für die? nach #, das könnte leicht der Mörder sein – annakata
Ich hatte noch nie von der '#? Problem vorher. Gut zu wissen. –
Das lustige ist, ich habe meine History-Funktion so modelliert, dass sie genau wie eine URL funktioniert und ich dachte, ich wäre sehr clever. Nachdem ich herumgelaufen bin und mir die verschiedenen Implementierungen angeschaut habe und gesehen habe, ob ich es gut gemacht habe, bin ich auf Facebook gestoßen, wo eine ähnliche Idee verwendet wird, um die Geschichte zu verfolgen. Ehrlich gesagt, sollte ich dies zu einem ausgefeilteren Plugin machen, das komplett mit dem URL-Parser ist und es ereignisgesteuert macht. – cgp