Wie kann ich den Benutzer mit jQuery oder reinem JavaScript von einer Seite auf eine andere umleiten?
jQuery ist nicht notwendig, und window.location.replace(...)
wird am besten eine HTTP-Weiterleitung simulieren.
window.location.replace(...)ist besser als die Verwendung von
window.location.href, weil
replace()` die Ausgangsseite nicht in der Sitzungshistorie hält, was bedeutet, dass der Benutzer nicht in einem endlosen Zurück-Button-Fiasko stecken bleibt.
Wenn Sie simulieren wollen, dass jemand auf einen Link klickt, verwenden Sie
location.href
Wenn Sie eine HTTP-Weiterleitung simulieren wollen, verwenden Sie location.replace
Beispiel:
// similar behavior as an HTTP redirect
window.location.replace("http://stackoverflow.com");
// similar behavior as clicking on a link
window.location.href = "http://stackoverflow.com";
Es wäre hilfreich, wenn Sie etwas genauer beschreiben würden, was Sie zu tun versuchen. Wenn Sie versuchen, seitenweise Daten zu generieren, gibt es einige Optionen, wie Sie dies tun können. Sie können für jede Seite, die Sie direkt ansteuern möchten, einen eigenen Link erstellen.
<a href='/path-to-page?page=1' class='pager-link'>1</a>
<a href='/path-to-page?page=2' class='pager-link'>2</a>
<span class='pager-link current-page'>3</a>
...
Beachten Sie, dass die aktuelle Seite in diesem Beispiel im Code und mit CSS anders behandelt wird.
Wenn Sie möchten, dass die Seitendaten über AJAX geändert werden, kommt hier jQuery ins Spiel. Sie würden einen Click-Handler zu jedem der Anker-Tags hinzufügen, die einer anderen Seite entsprechen. Dieser Click-Handler würde einen jQuery-Code aufrufen, der über AJAX die nächste Seite abruft und die Tabelle mit den neuen Daten aktualisiert. Im folgenden Beispiel wird davon ausgegangen, dass Sie einen Webdienst haben, der die Daten der neuen Seite zurückgibt.
$(document).ready( function() {
$('a.pager-link').click( function() {
var page = $(this).attr('href').split(/\?/)[1];
$.ajax({
type: 'POST',
url: '/path-to-service',
data: page,
success: function(content) {
$('#myTable').html(content); // replace
}
});
return false; // to stop link
});
});
var url = 'asdf.html';
window.location.href = url;