Kann mir jemand den Unterschied zwischen window.location.href
und sagen top.location.href
?
Und auch wo man welches benutzt.
Und welches ist besser, wenn Sie nach einem Ajax-Aufruf in mvc umleiten?
javascript
asp.net-mvc
Egalitär
quelle
quelle
Antworten:
window.location.href
Gibt den Speicherort der aktuellen Seite zurück.top.location.href
(Dies ist ein Alias vonwindow.top.location.href
) gibt die Position des obersten Fensters in der Fensterhierarchie zurück. Wenn ein Fenster kein übergeordnetes Element hat,top
verweist es auf sich selbst (mit anderen Wortenwindow
===window.top
).top
ist sowohl nützlich, wenn Sie mit Frames arbeiten, als auch wenn Sie mit Fenstern arbeiten, die von anderen Seiten geöffnet wurden. Zum Beispiel, wenn Sie eine Seitetest.html
mit dem folgenden Skript aufgerufen haben :Die resultierende Warnung enthält den vollständigen Pfad zu test.html - nicht about: blank, was zurückkehren
window.location.href
würde.Um Ihre Frage zur Umleitung zu beantworten, gehen Sie zu
window.location.assign(url);
quelle
top.location.href
einen Alias von aufzurufenwindow.top.location.href
? Ich dachte, dass eine sogenannte "globale" Variable wirklich eine Abkürzung für eine Eigenschaft von ist,window
während Alias impliziert, dass es sich um eine unabhängige Variable handelt, die auf dieselbe Stelle verweist.top
Objekt macht innerhalb von Frames mehr Sinn.window
Bezieht sich innerhalb eines Frames auf das Fenster des aktuellen Frames, während estop
sich auf das äußerste Fenster bezieht, das die Frames enthält. So:window.location.href = 'somepage.html';
bedeutet das Ladensomepage.html
innerhalb des Rahmens.top.location.href = 'somepage.html';
bedeutet das Ladensomepage.html
im Hauptbrowserfenster.Zwei weitere interessante Objekte sind
self
undparent
.quelle
top
bezieht sich auf das Fensterobjekt, das alle aktuellen Frames enthält (Vater der restlichen Fenster).window
ist der Stromwindow
.http://www.howtocreate.co.uk/tutorials/javascript/browserinspecific
so
top.location.href
kann enthalten den „Master“ Seite Link , um alle Frames enthält, währendwindow.location.href
nur die „aktuelle“ Seite Link enthält.quelle
Der erste fügt Ihrem Verlauf ein Element hinzu, indem Sie auf "Zurück" klicken können (oder sollten) und zur aktuellen Seite zurückkehren können.
Der zweite ersetzt das aktuelle Verlaufselement, sodass Sie nicht mehr darauf zurückgreifen können.
Siehe
window.location
:assign(url)
: Laden Sie das Dokument unter der angegebenen URL.replace(url)
: Ersetzen Sie das aktuelle Dokument durch das unter der angegebenen URL. Der Unterschied zurassign()
Methode besteht darin, dass nach der Verwendungreplace()
der aktuellen Seite nicht im Sitzungsverlauf gespeichert wird, was bedeutet, dass der Benutzer nicht mit der Schaltfläche Zurück zu dieser navigieren kann.wird bevorzugt gegenüber:
quelle