IPB

Bienvenue invité ( Connexion | Inscription )

 
Reply to this topicStart new topic
> attention au javascript !, de la compatibilité des navigateurs
la_saucisse
* 25/10/07 à 20:11
Message #1


Confirmé
Group Icon

Groupe : Members
Messages: 50
Inscrit : 16/02/2007
Membre No. : 26 708
Niveau Atteint: OF : 69



je voudrais attirer l'attention de ceux d'entre-vous vous voudraient créer des énigmes incluant un champ de saisie pour la réponse, mais sans Flash. La solution, déjà proposée, est d'utiliser le javascript, sous cette forme :

CODE
<input type="text" name="reponse" value="votre réponse ici" onClick="java script:this.value='';">
<input type="button" value="OK" onClick="java script:location.href=reponse.value+'.html';">

note : le mot javascript est affiché ici java script, mais c'est en un seul mot, hein ! ne mettez pas d'espace dans vos codes !
le champ de type text sert à la saisie et button valide la réponse.
je précise au passage un ajout personnel : le onClick... sur le champ text permet d'effacer automatiquement le "votre réponse ici" dès que l'utilisateur clique dans le champ.

le problème vient de location.href=...
cette syntaxe semble ne pas être acceptée par tous les navigateurs ! j'ai utilisée cette syntaxe dans un niveau de VOF actuellement en test, et elle ne fonctionne pas sous Firefox, alors que sous IE6, elle passe. Pour les autres, je ne sais pas, c'est à tester.
je crois savoir que FF est plus respecteux de la norme javascript, ce qui pourrait expliquer qu'il refuse cette syntaxe simplifiée. Je pense qu'il faut rectifier en :
CODE
<input type="text" name="reponse" value="votre réponse ici" onClick="java script:this.value='';">
<input type="button" value="OK" onClick="java script:document.location.href=document.all.reponse.value+'.html';">

les différences ? on rajoute document. devant location.href et document.all. devant reponse.value
ces termes sont sous-entendus quand ils ne sont pas précisés avec IE, mais peut-être que FF n'aime pas les sous-entendus, et aime les codes explicites ! à tester donc, si vous avez FF ou Netscape, ou autre, et faites-nous part de vos tests !

j'en profite aussi pour vous proposer le code si vous vouler appeller votre page dans un autre sous-dossier, ou que la réponse définisse un autre dossier :
CODE


lien normal :
<input type="button" value="OK" onClick="java script:document.location.href=document.all.reponse.value+'.html';">

lien vers un sous-dossier :
<input type="button" value="OK" onClick="java script:document.location.href='nomdudossier/' +document.all.reponse.value+'.html';">

lien vers un autre dossier du dossier racine :
<input type="button" value="OK" onClick="java script:document.location.href='../nomdudossier' +document.all.reponse.value+'.html';">

lien vers un dossier défini par la réponse, la page est déjà nommée :
<input type="button" value="OK" onClick="java script:document.location.href=document.all.reponse.value+'/nomdelapage.html';">


et sans vouloir faire de cours sur le javascript, je précise qu'il accepte les ' comme les " ; dans un script intégré dans une page avec <script>...</script> ça ne pose pas de problème d'utiliser les ". Mais dans des appels depuis une ligne html, on utilise les " pour encadrer le javascript ! il font alors impérativement utiliser les ' pour les chaines de caractères, sinon le script est considéré comme terminé, et ça plante.
Donc prenez l'habitude de n'utiliser que des ', ça vous évitera des bugs... wink.gif

EDIT : je vais tester comme il faut sous FF, je vous dirai de quoi il retourne exactement. Pour les autres (que FF ou IE)... heu, changez !
et pour les niveaux avec javascript, on peut ajouter une petite balise dans un p'tit coin :
CODE
<a href="apropos.html" target="_blank">à propos de ce niveau</a>
dont la page apropos.html (qui sera ouverte dans une autre page) explique que le javascript, selon le navigateur, blabla blabla.... wink.gif


--------------------
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
la_saucisse
* 25/10/07 à 20:26
Message #2


Confirmé
Group Icon

Groupe : Members
Messages: 50
Inscrit : 16/02/2007
Membre No. : 26 708
Niveau Atteint: OF : 69



je viens de tester sur Firefox portable v2.0.0.6 : ma correction fonctionne !
donc mettre :
document.location.href=document.all.reponse.value
et voilà ! j'essairai de tester d'autres navigateurs.



--------------------
User is offlineProfile CardPM
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 utilisateur(s) sur ce sujet (1 invité(s) et 0 utilisateur(s) anonyme(s))
0 Membre(s):

 






Version bas débit Nous sommes le : 13/12/17 à 19:47