Frage

Ich habe nie gelernt, JavaScript, aber ich glaube, das ist ein ganz einfaches Problem. Ich wollte nur wissen, welche Methode die meisten in diesen Tagen empfohlen.

War es hilfreich?

Lösung

// use this to avoid redirects when a user clicks "back" in their browser
window.location.replace('http://somewhereelse.com');

// use this to redirect, a back button call will trigger the redirection again
window.location.href = "http://somewhereelse.com";

// given for completeness, essentially an alias to window.location.href
window.location = "http://somewhereelse.com";

Bearbeiten . Wie der Benutzer sieht, der die bessere Antwort gepostet SO verlassen hat, habe ich seine Antworten hier konsolidiert

Andere Tipps

Die meisten geraten? Um es nicht. HTTP ist weit besser geeignet, um den Job als JavaScript ist ( Suchmaschinen folgen ihnen, können Sie angeben, ob es dauerhaft ist oder nicht, sie sind schneller, etc).

Gelingt das nicht ...

Wenn Sie eine sofortige Umleitung:

window.location.replace('http://example.com/');

Dadurch wird die aktuelle URI mit dem neuen URI in dem Browser-History ersetzen, so wird die Zurück-Taste die Benutzer nicht auf einer Seite landen, die sie sofort wieder nach vorne wirft.

Wenn Sie nicht wirklich wollen, umleiten, wollen aber den Benutzer irgendwo in Reaktion auf ein Ereignis senden:

window.location.href = 'http://example.com/';

Denken Sie daran, einen Nicht-JavaScript-Fallback haben. Ein Link ist in der Regel die beste Option, aber es vom Kontext abhängig ist.

Zeit verzögert Umleitungen ist eine noch schlechtere Idee. Der einzige Grund, sie zu benutzen, wenn Sie eine Nachricht an den Benutzer angezeigt werden sollen - und Benutzer lesen Dinge mit unterschiedlichen Geschwindigkeiten (und hat sie in einem anderen Tab sitzen, während sie etwas anderes tun). Wenn die Nachricht wichtig genug ist, um zu zeigen, dann sollte es wichtig genug sein, auf dem Bildschirm zu verlassen, bis der Benutzer sie gelesen hat und einen Link auf die nächste Seite angeklickt wird.

Eine wichtige Sache zu erinnern, wenn eine Seite mit JavaScript Umleitung wird, bietet immer ein Nicht-JavaScript als auch umleiten! Ein Link tun würde, oder besser, einen <META> Tag, zum Beispiel: <meta http-equiv="refresh" content="2;url=http://example.com">

In diesen Tage, ich glaube, die meisten empfohlene Methode ist kein Javascript zu tun ( oder meta) umleitet. Haben Sie es wirklich brauchen? Könnten Sie stattdessen eine Umleitung HTTP-Header verwenden?

Die Web Content Accessibility Guidelines der W3C (7.4) entmutigt auch die Schaffung von Auto-Refresh-Seiten, da die meisten Web-Browser den Benutzer nicht erlauben, die Bildwiederholfrequenz zu deaktivieren oder steuern

Eine andere Möglichkeit, es mit lokalen Dateien zu tun ist, um dies zu tun

<script type="text/javascript">
function Redirect(){
  window.location.href = ("https://example.com");
}
document.write("Please wait you will be redirected in 10sec");
setTimeout('Redirect(), 10000);
</script>

<!-- begin snippet: js hide: false console: true babel: false -->

<script type="text/javascript">
function Redirect(){
  window.location.href = ("https://example.com");
}
document.write("Please wait you will be redirected in 10sec");
setTimeout('Redirect(), 10000);
</script>
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top