2008-10-14 7 views

Antwort

84
// 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: Der Benutzer sieht aus wie wer die bessere Antwort gepostet SO verlassen hat, ich habe hier seine Antworten konsolidiert.

4

Eine wichtige Sache, die Sie beachten sollten, wenn Sie eine Seite mit JavaScript umleiten, ist immer auch eine Nicht-JavaScript-Weiterleitung! Eine Verbindung würde, oder besser ein <META> Tag, zum Beispiel: <meta http-equiv="refresh" content="2;url=http://example.com">

24

Am besten beraten? Um es nicht zu tun. HTTP is far better suited to the job als JavaScript ist (Suchmaschinen folgen ihnen, Sie können angeben, ob es dauerhaft ist oder nicht, sie sind schneller, usw.).

Versagt das & hellip;

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 dass die Zurück-Taste wird den Benutzer auf einer Seite nicht landen, die sie sofort werfen Weiterleiten.

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 zu haben. Ein Link ist normalerweise die beste Option, aber es hängt vom Kontext ab.

Zeitverzögerte Weiterleitungen sind eine noch schlimmere Idee. Der einzige Grund, sie zu verwenden, ist, wenn Sie eine Nachricht für den Benutzer anzeigen möchten - und Benutzer die Dinge mit unterschiedlichen Geschwindigkeiten lesen (und sie in einem anderen Tab sitzen lassen, während sie etwas anderes machen). Wenn die Nachricht wichtig genug ist, um angezeigt zu werden, sollte es wichtig genug sein, auf dem Bildschirm zu bleiben, bis der Benutzer sie gelesen hat und auf einen Link zur nächsten Seite geklickt hat.

4

In diesen Tagen denke ich, die am meisten empfohlene Methode ist not to do javascript (oder Meta) Weiterleitungen. Brauchst du es wirklich? Könnten Sie stattdessen einen Redirect-HTTP-Header verwenden?

Die Web W3C Content Accessibility Guidelines (7.4) entmutigen auch die Schaffung von Auto-Refresh-Seiten, da die meisten Web-Browsern nicht erlauben dem Benutzer

0

<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>

die Aktualisierungsrate zu deaktivieren oder zu steuern,
0

<!-- 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>