Quelle est la différence entre
window.location.href="http://example.com";
window.location.replace("http://example.com");
window.location.assign("http://example.com");
J'ai lu dans de nombreux forums qui window.location.assign()
remplace simplement l'historique de la session actuelle et, par conséquent, le bouton de retour du navigateur ne fonctionnera pas. Cependant, je ne suis pas en mesure de reproduire cela.
function fnSetVariable() {
//window.location.href = "http://example.com";
window.location.replace("http://example.com");
//window.location.assign("http://example.com");
}
<a onmouseover="fnSetVariable();"
href="PageCachingByParam.aspx?id=12" >
CLICK
</a>
javascript
dom
location
milan_9211
la source
la source
Réponses:
Ceux-ci font la même chose:
Ils naviguent simplement vers la nouvelle URL. La
replace
méthode, d'autre part, navigue vers l'URL sans ajouter un nouvel enregistrement à l'historique.Donc, ce que vous avez lu sous ces nombreuses formes n'est pas correct. La
assign
méthode ajoute un nouvel enregistrement à l'historique.Référence: http://developer.mozilla.org/en/window.location
la source
assign()
? D'après cette réponse et les documents, cela semble identique àlocation = ...
.Le fait de ne pas pouvoir utiliser le bouton Retour est une mauvaise interprétation courante. window.location.replace (URL) jette la première entrée de la liste d'historique de page, en l'écrasant par la nouvelle entrée, de sorte que l'utilisateur ne puisse pas facilement retourner à cette page Web particulière. La fonction n'efface PAS la liste entière de l' historique de la page et ne rend pas le bouton Retour complètement inopérant.
(AUCUNE fonction ni combinaison de paramètres que je connais ne peut changer ou écraser les entrées de la liste d'historique que vous ne possédez pas absolument pour certains - les navigateurs impulsent généralement cette limitation de sécurité en ne définissant simplement aucune opération qui pourrait affecter une entrée autre que celui du haut de la liste de l'historique des pages. Je frémis à l'idée de ce que les logiciels malveillants pourraient faire si une telle fonction existait.)
Si vous voulez vraiment rendre le bouton Retour non fonctionnel (probablement pas "convivial": détrompez-vous si c'est vraiment ce que vous voulez faire), "ouvrez" une toute nouvelle fenêtre. (Vous pouvez « ouvrir » une fenêtre qui ne même pas avoir touche un « Retour » trop ... mais popups sont pas très populaires ces jours -ci :-) Si vous voulez garder votre page montrant peu importe ce que fait l'utilisateur ( encore une fois, la «convivialité» est discutable), mettez en place un gestionnaire window.onunload qui ne fait que recharger votre page à nouveau clairement dès le début à chaque fois.
la source