Quelqu'un peut-il me dire la différence entre window.location.href
et top.location.href
?
Et aussi où utiliser lequel.
Et lequel sera le meilleur lors de la redirection après un appel ajax dans mvc?
javascript
asp.net-mvc
Égalitariste
la source
la source
Réponses:
window.location.href
renvoie l'emplacement de la page actuelle.top.location.href
(qui est un alias dewindow.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 à elle-même (en d'autres termes,window
===window.top
).top
est utile à la fois pour les cadres et pour les fenêtres qui ont été ouvertes par d'autres pages. Par exemple, si vous avez une page appeléetest.html
avec le script suivant:L'alerte résultante aura le chemin complet vers test.html - pas about: blank, ce
window.location.href
qui reviendrait.Pour répondre à votre question sur la redirection, utilisez
window.location.assign(url);
la source
top.location.href
un alias dewindow.top.location.href
? Je pensais qu'une variable dite "globale" est en fait un raccourci pour une propriété dewindow
alors que l' alias implique que c'est une variable indépendante qui pointe vers le même endroit.top
objet a plus de sens dans les cadres. À l'intérieur d'un cadre,window
fait référence à la fenêtre du cadre actuel tandis quetop
fait référence à la fenêtre la plus à l'extérieur qui contient le ou les cadres. Alors:window.location.href = 'somepage.html';
signifie chargementsomepage.html
à l'intérieur du cadre.top.location.href = 'somepage.html';
signifie chargementsomepage.html
dans la fenêtre principale du navigateur.Deux autres objets intéressants sont
self
etparent
.la source
top
fait référence à l'objet window qui contient tous les cadres courants (père du reste des fenêtres).window
est le courantwindow
.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, tandiswindow.location.href
que contient simplement le lien de la page "courante".la source
Le premier ajoute un élément à votre historique en ce que vous pouvez (ou devriez pouvoir) cliquer sur "Retour" et revenir à la page actuelle.
Le second remplace l'élément d'historique actuel afin que vous ne puissiez pas y revenir.
Voir
window.location
:assign(url)
: Chargez le document à l'URL fournie.replace(url)
: Remplacez le document actuel par celui de l'URL fournie. La différence avec laassign()
méthode est qu'après utilisation,replace()
la page actuelle ne sera pas enregistrée dans l'historique de session, ce qui signifie que l'utilisateur ne pourra pas utiliser le bouton Retour pour y accéder.est préféré à:
la source