Ist dies eine richtige Art und Weise zu verwenden History.js?
War ich in der Lage, zusammen eine vereinfachte abzuschließen History.js Beispiel mit drei links zu Last-Fragmente von Inhalten von einer vollständigen Seite ohne Aktualisierung der Seite und während der Aktualisierung der browser-history.
Hier sind die relevanten code-snippets - ein funktionsfähiges Beispiel ist hier http://jsfiddle.net/PT7qx/show
<a href="/page-header">Page Header</a>
<a href="/login-form">Login Form</a>
<a href="/nothing">Nothing</a>
<script>
var History = window.History;
if (!History.enabled) {
return false;
}
History.Adapter.bind(window, 'statechange', function() {
var State = History.getState();
History.log(State.data, State.title, State.url);
if (State.title == 'Page Header') {
$('#content').load('/user/login/.pageHeader > *');
}
if (State.title == 'Login Form') {
$('#content').load('/user/login/#common-form > *');
}
if (State.title == 'Nothing') {
$('#content').empty()
}
});
$('body').on('click', 'a', function(e) {
var urlPath = $(this).attr('href');
var Title = $(this).text();
History.pushState(null, Title, urlPath);
//prevents default click action of <a ...>
return false;
});
<\script>
Ich würde gerne wissen, ob dies ist die korrekte Verwendung. Die vorhergehende version hatte eine Fähigkeit zum binden an ein Ereignis mit der # - urls. Ich habe nicht gesehen, alle Beispiele für die Bindung von Ereignissen, die auf urls mit dieser neuesten version, also habe ich die .auf() klicken-Ereignis aufrufen, Geschichte und sortiert aus, was link geklickt wurde.
Ich bin nicht sicher, ob dies der beste Weg, dies zu erreichen für dieses Beispiel.
InformationsquelleAutor dansalmo | 2012-11-07
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nach der Arbeit an diesem einige mehr, die ich mit gekommen sind ein einfaches, aber vollständiges Beispiel für die Verwendung der neuesten History.js. Hier ist arbeiten jsfiddle Beispiel, dass nicht Ajax lädt der HTML-Fragmente, die auf Github gehostet
History.pushState({urlPath: window.location.pathname()}, $("title").text(), State.urlPath);
wirft einen Fehler, als Fenster.Lage.pathname() ist keine Funktion. Einfach entfernen Sie die Klammern und es funktioniert wie ein Charme.Danke für den Fang. Nicht sicher, wie ich es verpasst, da ich dachte, ich war in einfügen aus einer funktionierenden version.
Wenn ich implementieren, ein Beispiel, wie du es oben gezeigt haben (stackoverflow.com/a/13314438/1867808) wo bekomme ich zusätzliche Inhalte, die relativ zu der index.html Datei? Lege ich es in eine response.html das ist im gleichen Ordner wie index.html?
Ja. Zumindest mit dem server-framework das ich verwende. Ich nutze die Google App Engine mit Python 2.7.
bin ich zu senden ganze Seite auf den Ziel-link oder nur einen Teil der Seite der Ziel-link?
InformationsquelleAutor dansalmo