Page 1 sur 2

Pb redirection avec Javascript

Publié : 04 mai 2006, 15:57
par cryborg
Bonjour,

J'ai eu beau chercher sur le site, je n'ai pas trouvé la réponse à mon problème que voici :

J'ai un bouton qui devrait me renvoyer vers une page, mais il ne le fait pas. Voici le code du bouton :

Code : Tout sélectionner

<BUTTON class=une_classe onClick="document.location.href='index.php?page=comment.php&photo=une_photo.gif';" value="valeur" NAME="photo">Commenter cette photo</BUTTON>
Pourtant, j'utilise ce script ailleurs, mais pas dans un bouton, et ça fonctionne parfaitement :

Code : Tout sélectionner

<SCRIPT language=Javascript>
document.location.href="index.php?page=news.php";
</SCRIPT>
J'ai essayé d'ajouter javascript: devant, de mettre document.location sans le .href, d'enlever le document. et remplacer par self, mais rien de cela n'a fonctionné.
J'ai aussi tenté sans le point virgule à la fin, et d'inverser les " avec des ', et inversement, mais sans succès

En revanche, pratiquement toutes ces solutions ont fonctionné sous IE...

Quelqu'un a-t-il une idée ?

Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.0.2) Gecko/20060308 Firefox/1.5.0.2

Publié : 04 mai 2006, 16:26
par martin
J'ai copié/collé exactement tel quel ton code de bouton dans une page, et il fonctionne...

As tu des erreurs dans la console javascript ? (en la paramétrant sur strict)

Publié : 04 mai 2006, 16:31
par epsy
pourquoi ne pas utiliser un window.open() ?

Message envoyé avec : Mozilla/5.0 (X11; U; Linux i686; fr; rv:1.8.0.2) Gecko/20060308 Firefox/1.5.0.2

Publié : 04 mai 2006, 16:38
par cryborg
Eh bien à part quelques erreurs dans ma page.css, je n'ai aucun message d'erreur...

En fait, ce code est généré par du PHP, mais j'ai fait un copier-coller de la page HTML, alors le souci ne devrait pas être au niveau du PHP...

Au cas où, j'ai mis en dur le code à la place de la génération par PHP, et j'ai le même souci : aucun message d'erreur dans la console, mais la redirection ne se fait pas...

Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.0.2) Gecko/20060308 Firefox/1.5.0.2

Publié : 04 mai 2006, 16:45
par cryborg
pourquoi ne pas utiliser un window.open() ?
Si je te disais que je n'y avais pas pensé ? :shock: :) Et puis je ne l'ai jamais utilisé :lol:

En revanche, il m'ouvre une nouvelle fenêtre, et

Code : Tout sélectionner

window.open('fichier.php', '_self')
ne semble pas fonctionner...

Une idée ?


EDIT : c'est peut-être bête comme question, mais c'est cross-browser window.open ? Ca fait référence à la window du navigateur, et pas Windows hein ?

Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.0.2) Gecko/20060308 Firefox/1.5.0.2

Publié : 04 mai 2006, 16:47
par martin
tu as un problème avec ton firefox...
ce code marche parfaitement :

Code : Tout sélectionner

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
        "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>title</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<button class="une_classe"
        onclick="document.location.href='http://www.geckozone.org/';"
        value="valeur" name="photo">Commenter cette photo</button>
</body>
</html>
essaie de fermer ton firefox (en tuant le processus si nécessaire), et redémarre le, des fois que...

Publié : 04 mai 2006, 17:12
par cryborg
tu as un problème avec ton firefox...
ce code marche parfaitement :
Oui, il marche bien effectivement.... mais pas quand je le mets dans ma page :cry:
essaie de fermer ton firefox (en tuant le processus si nécessaire), et redémarre le, des fois que...
Même (non-) résultat :shock:

Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.0.2) Gecko/20060308 Firefox/1.5.0.2

Publié : 04 mai 2006, 17:16
par cryborg
J'ai trouvé !! :D

Tout le monde avait raison dans cette histoire, finalement : le code lui-même était bon !

Par contre, là où ça n'allait pas, c'est que mon code était contenu dans une balise

Code : Tout sélectionner

<FORM action='index.php?page=photos.php' method='get'>
</FORM>
En la supprimant, tout fonctionne bien, MEME mes boutons :D

Merci à tout le monde pour vos réponses, désolé pour ce petit dérangement, et peut-être à bientôt ! :D

8-) 8-) 8-)

EDIT : si quelqu'un pouvait m'expliquer pourquoi la balise gênait....

Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.0.2) Gecko/20060308 Firefox/1.5.0.2

Publié : 04 mai 2006, 17:25
par cryborg
Enfin, je dis ça, mais du coup, mon bouton submit en haut de la page ne marche plus, évidemment...

Pourquoi est-ce que ça ne peut pas cohabiter ??

Un location.href n'est pas censé poster la page :?: :?:


EDIT : je viens de me rendre compte que la page est bien appelé, mais qu'une seconde redirection est faite ensuite, que je ne m'explique pas... Je continue de chercher

Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.0.2) Gecko/20060308 Firefox/1.5.0.2

Publié : 04 mai 2006, 18:27
par epsy
cryborg a écrit :Enfin, je dis ça, mais du coup, mon bouton submit en haut de la page ne marche plus, évidemment...
eh bien tu met celui-la dans un formulaire mais pas les autres

Message envoyé avec : Mozilla/5.0 (X11; U; Linux i686; fr; rv:1.8.0.2) Gecko/20060308 Firefox/1.5.0.2

Publié : 04 mai 2006, 18:46
par martin
Il faut court-circuiter le traitement par défaut du button (avec return false) :

Code : Tout sélectionner

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
        "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>title</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<form action='index.php?page=photos.php' method='get'>
  <button class="une_classe"
          onclick="document.location.href='http://www.geckozone.org/'; return false;"
          value="valeur" name="photo">Commenter cette photo</button>
  <input type="submit">
</form>
</body>
</html>

Re: Pb redirection avec Javascript

Publié : 04 mai 2006, 19:27
par calimo
cryborg a écrit :

Code : Tout sélectionner

<BUTTON class=une_classe onClick="document.location.href='index.php?page=comment.php&photo=une_photo.gif';" value="valeur" NAME="photo">Commenter cette photo</BUTTON>
Euh, excusez-moi tous, mais…
  • C'est un lien non ? Pourquoi ne pas faire un lien ? :shock: Pour mémoire, un lien c'est <a href="URL">texte</a> :roll:
  • Que se passe-t-il si javascript est désactivé ? Ce code est un obstacle majeur à l'accessibilité (priorité 1 : ne pas faire dépendre l'accès à l'exécution des scripts). Pour mémoire, 10% des internautes ont js désactivé :roll:

Re: Pb redirection avec Javascript

Publié : 04 mai 2006, 20:09
par martin
calimo a écrit :C'est un lien non ?
tout à fait, j'ai rien dit, mais c'est ce que je pensais... :wink:
Enfin, on a peut être pas tous les tenants et aboutissant de la page.

Re: Pb redirection avec Javascript

Publié : 04 mai 2006, 20:44
par calimo
martin a écrit :tout à fait, j'ai rien dit, mais c'est ce que je pensais... :wink:
Il faut toujours dire ce qu'on pense. Surtout lorsque l'accessibilité est en jeux.

L'accessibilité ça concerne tout le monde. Tout le monde connait une personne handicapée d'une manière ou d'une autre. Et n'oublions pas qu'on est tous un jour handicapé :wink:

martin a écrit :Enfin, on a peut être pas tous les tenants et aboutissant de la page.
Certes, mais au vu de l'énoncé du problème ça me semble peu probable. L'accessibilité doit toujours primer sur d'éventuelles obscures mauvaises bonnes raisons :wink:

Publié : 04 mai 2006, 22:19
par epsy
salut,

j'ai une petite idée: chaque bouton ans son formulaire(ça irait question accesssibilité)

Message envoyé avec : Mozilla/5.0 (X11; U; Linux i686; fr; rv:1.8.0.2) Gecko/20060308 Firefox/1.5.0.2