2011-04-29 4 views
0

Le script suivant fonctionne merveilleusement dans FireFox mais n'a aucun succès du tout dans IE ou Chrome .... J'ai martelé ma tête pendant des heures sur cette bêtise .... toute aide est appréciée.JavaScript window.location.replace fonctionne dans Firefox mais pas IE ou Chrome

<script type="text/javascript"> 
window.onunload = function exitConfirm() 
{ 
    var answer = confirm("Wait don't GO! I love you!"); 
    if (answer) 
     { 
      if(!self.closed) 
      { 
      window.open("http://myKoolUrl"); 
      }else{ 
      window.location.replace("http://myKoolUrl"); 
      } 
     } 
} 
</script> 

Le Confirmer fonctionne très bien pour les congés de page et broswer/page/fermer l'onglet, mais peu importe le choix de sélection dans IE/Chrome ne redirect est en cours. Aide-moi à comprendre.

Mettre à jour un exemple beaucoup plus simple à l'aide onbeforeunload:

<body onbeforeunload=go();> 
function go() 
{ 
    if(confirm("Go to Google")) 
    { 
    window.location.href = "http://www.google.com"; 
    } 
} 
</body> 

Cela ne fonctionne pas non plus dans IE/Chrome/Safari Je l'ai utilisé quelques machines différentes pour tenter d'éliminer les erreurs de réglage d'une certaine sorte. Est-ce juste une situation folle que je manque quelque chose d'évident ... ??? Pourquoi la redirection ne fait rien dans ces navigateurs ... est-ce juste moi? J'ai essayé tout le mignon JS réoriente:

location 
location.href 
location.reload 
location.open 
etc 

même jQuery

$(location).attr('href','http://www.google.com'); 

Encore une fois TOUS ces travaux bien sur ma machine à FireFox

+2

Je dois mentionner que ce genre de comportement est très mal vu dans le "bon" design web. C'est généralement une mauvaise idée de deviner les activités de l'utilisateur. – Ben

+0

@Steve c'est HORRIBLE pour la conception web et généralement irritant, mais il fait des milliards de dollars par an et si ces braquages ​​de ventes cessent de faire de l'argent alors nous cessons d'avoir des gens à concevoir pour :-) – Zjoia

Répondre

2

vous pouvez le faire comme ça aussi

window.location.href = 'http://myKoolUrl'; 
+1

C'est une bonne façon de le faire ne fait rien pour résoudre mon problème, le même comportement est exposé, fonctionne en FF mais pas dans IE/Chrome – Zjoia

+0

J'ai essayé cela en chrome et IE à mon extrémité, il a travaillé pour moi comme essayer d'utiliser ceci pour une fois dans votre code pls 'fenêtre .location.href = 'http: //www.google.com'; ' –

+0

Je peux reproduire ceci sur 2 machines différentes, peut-être qu'il y a une conspiration secrète contre mon travail de redirection. J'ai implémenté votre solution comme vous l'avez ici http://s56.net/test.html – Zjoia

0

Peut-être que Chrome pré-récupère l'URL et connaît son faux, donc pas de redirection. Essayer avec une URL valide a fonctionné pour moi.

Questions connexes