Quelqu'un peut-il me dire la différence entre window.location.href
et top.location.href
?
Et aussi où utiliser chacun d'eux.
Et lequel sera le meilleur lors d'une redirection après un appel ajax en mvc ?
Quelqu'un peut-il me dire la différence entre window.location.href
et top.location.href
?
Et aussi où utiliser chacun d'eux.
Et lequel sera le meilleur lors d'une redirection après un appel ajax en mvc ?
window.location.href
renvoie l'emplacement de la page actuelle.
top.location.href
(qui est un alias de window.top.location.href
) renvoie l'emplacement de la fenêtre la plus élevée dans la hiérarchie des fenêtres. Si une fenêtre n'a pas de parent, top
est une référence à lui-même (en d'autres termes, window
=== window.top
).
top
est utile à la fois lorsque vous traitez des cadres et lorsque vous traitez des fenêtres qui ont été ouvertes par d'autres pages. Par exemple, si vous avez une page appelée test.html
avec le script suivant :
var newWin=window.open('about:blank','test','width=100,height=100');
newWin.document.write('<script>alert(top.location.href);</script>');
L'alerte résultante aura le chemin complet de test.html -. pas about:blank, qui est ce que window.location.href
reviendrait.
Pour répondre à votre question sur la redirection, allez-y avec window.location.assign(url);
top
a plus de sens à l'intérieur des cadres. A l'intérieur d'un cadre, window
se réfère à la fenêtre de l'image courante tandis que top
fait référence à la fenêtre la plus extérieure qui contient le(s) cadre(s). Ainsi :
window.location.href = 'somepage.html';
chargement des moyens somepage.html
à l'intérieur du cadre.
top.location.href = 'somepage.html';
chargement des moyens somepage.html
dans la fenêtre principale du navigateur.
La première ajoute un élément à votre historique en ce sens que vous pouvez (ou devriez pouvoir) cliquer sur "Retour" et revenir à la page en cours.
La seconde remplace l'élément actuel de l'historique de sorte que vous ne pouvez pas y revenir.
Voir window.location :
assign(url): Load the document at the provided URL.
replace(url):Replace the current document with the one at the provided URL. The difference from the assign() method is that after using replace() the current page will not be saved in session history, meaning the user won't be able to use the Back button to navigate to it.
window.location.href = url;
est privilégiée :
window.location = url;
top
fait référence à l'objet fenêtre qui contient tous les cadres actuels (père du reste des fenêtres). window
est le courant window
.
http://www.howtocreate.co.uk/tutorials/javascript/browserinspecific
donc top.location.href
peut contenir le lien de la page "maître" contenant tous les cadres, alors que window.location.href
contient uniquement le lien de la page "actuelle".
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.
0 votes
J'ai oublié de mentionner que j'ai dû rediriger vers une nouvelle url en .net MVC lorsque j'ai utilisé top.location.href cela a fonctionné alors que window.location ne l'a pas fait pouvez-vous également expliquer pourquoi ? ???