2009-12-21 3 views
1

Je suis confronté à un problème étrange dans ie6.window.location problème

Lorsque j'utilise window.location pour rediriger la page via javascript, cela fonctionne très bien dans tous les navigateurs sauf ie6.

Il travaille dans IE6 si je place comme ci-dessous:

<a href="javascript:void(0);" onclick="javascript:window.location('http://www.demo.com');">demo</a> 

mais son ne fonctionne pas pour le code ci-dessous.

<a href="javascript:void(0);" onclick="javascript:redirect();>demo</a> 
function redirect() 
{ 
    window.location('http://www.demo.com');" 
} 

pouvez-vous s'il vous plaît comprendre ce qui problème ici.

Merci.

Avinash

Répondre

1

Que diriez-vous faire:

<a href="#" onclick="redirect(); return false;"> 
    demo 
</a> 
+0

-1 window.location n'est pas une fonction. –

+2

@aaron, je ne suis pas sûr de ce que vous voulez dire, pourriez-vous élaborer là-dessus? – marcgg

+1

@Aaron: Où a-t-il dit que window.location était une fonction? –

0

Essayez:

window.location.href = 'http://www.demo.com'; 

dans la fonction.

7

Le protocole javascript: n'est utilisé que si vous avez du code Javascript dans une URL. Si vous le placez dans un gestionnaire d'événements, il devient un label à la place. Le membre location n'est pas une fonction, c'est un objet. Définissez la propriété href pour changer l'emplacement.

Vous avez un guillemet supplémentaire après la ligne de code dans la fonction, ce qui provoque probablement une erreur de syntaxe.

<a href="javascript:void(0);" onclick="redirect();>demo</a> 

<script type="text/javascript"> 
function redirect() { 
    window.location.href = 'http://www.demo.com'; 
} 
</script> 
+1

@Guffa: La configuration de window.location fonctionnera toujours. Essayez-le: 'window.location =" http://stackoverflow.com ";'. Bon point sur l'erreur de syntaxe cependant, je dois admettre que je l'ai négligé :) –

+0

@Andy: Affectation de l'URL à l'objet emplacement ne fonctionne que dans certains navigateurs. – Guffa

+0

@Guffa: Ah, c'est juste. Je serais intéressé de savoir lequel (le cas échéant) des meilleurs navigateurs ne fonctionnerait pas, cependant. –

1

Si vous souhaitez que la page de redirection demo.html lorsque l'utilisateur clique sur un lien, oserais-je vous suggère d'utiliser l'universel, crossbrowser <a href="demo.html">demo</a>?

+0

@Phil: Vous ne pensez pas qu'il est probable que le code qu'il a écrit dans la question n'est qu'un exemple simplifié de ce qu'il essaie de faire? –

+0

@Andy E: Oui, mais il ne nous l'a pas montré. S'il veut qu'une fonction js change l'emplacement de la fenêtre, ce serait une question différente - l'exemple spécifique était une redirection dans un lien hypertexte. Une question moins simplifiée peut aider - faire exécuter javascript lorsque l'utilisateur clique sur un lien n'est pas le même problème. –

0

Essayez:

window.event.returnValue = false; document.location.href = 'http: //www.demo.com';

Questions connexes