Petite aide facile javascript
Résolu/Fermé
Winterboard
Messages postés
137
Date d'inscription
jeudi 8 mai 2008
Statut
Membre
Dernière intervention
30 juin 2009
-
30 sept. 2008 à 18:55
Winterboard Messages postés 137 Date d'inscription jeudi 8 mai 2008 Statut Membre Dernière intervention 30 juin 2009 - 19 nov. 2008 à 19:32
Winterboard Messages postés 137 Date d'inscription jeudi 8 mai 2008 Statut Membre Dernière intervention 30 juin 2009 - 19 nov. 2008 à 19:32
A voir également:
- Petite aide facile javascript
- Telecharger javascript - Télécharger - Langages
- Petite amie virtuelle en français - Accueil - Intelligence artificielle
- A javascript error occurred in the main process - Forum Matériel & Système
- Javascript void 0 c'est quoi ✓ - Forum Réseaux sociaux
- Firefox s'ouvre en petite fenetre ✓ - Forum Mozilla Firefox
30 réponses
Winterboard
Messages postés
137
Date d'inscription
jeudi 8 mai 2008
Statut
Membre
Dernière intervention
30 juin 2009
13 oct. 2008 à 19:15
13 oct. 2008 à 19:15
groarh ca ne marche pas :_-(
sait tu peut etre quel peut etre le probleme???? l"erreur c'est ca:
SyntaxError: Parse Error (line25)
ligne 25 c'est a dire: var collection1 = ....
merci beacoup
sait tu peut etre quel peut etre le probleme???? l"erreur c'est ca:
SyntaxError: Parse Error (line25)
ligne 25 c'est a dire: var collection1 = ....
merci beacoup
Groarh
Messages postés
682
Date d'inscription
vendredi 1 août 2008
Statut
Membre
Dernière intervention
28 juin 2015
185
14 oct. 2008 à 10:35
14 oct. 2008 à 10:35
:· sais pas... faute de frappe ?
Ou alors ton navigateur ne prend pas en charge un niveau suffisant de DOM (je crois qu'il faut le niveau 2).
Essaye ce test dans ta console de débuggage :
Ou alors ton navigateur ne prend pas en charge un niveau suffisant de DOM (je crois qu'il faut le niveau 2).
Essaye ce test dans ta console de débuggage :
document.implementation.hasFeature('Core', '2.0')
Winterboard
Messages postés
137
Date d'inscription
jeudi 8 mai 2008
Statut
Membre
Dernière intervention
30 juin 2009
14 oct. 2008 à 18:46
14 oct. 2008 à 18:46
enfait le code etait mal encodé et avait des caracteres cachées. Voici mon code propre:
Il y a encore une erreur mais cette fois ca viens d'une balise non terminée. Il manque un }
Je ne sais pas ou le placer :p. Il donne lerreur sur la dernierre ligne c-a-d: addlistener(window...
Merci pour tout ton aide.
function slide() { function addListener(o, e, f) { if (o.addEventListener) { o.addEventListener(e, f, false); } else { o.attachEvent("on" + e, f); } } function changeClass1() { document.getElementById("content").className = "slidedone"; document.getElementById("footer").className = "slidedone"; document.getElementById("list").className = "slidedone"; } function changeClass2() { document.getElementById("content").className = "slidedone2"; document.getElementById("footer").className = "slidedone2"; document.getElementById("list").className = "slidedone2"; } function bindAnchors() { var collection1 = document.getElementById("topmenu").getElementsByTagName("a"); var collection2 = document.getElementById("content").getElementsByTagName("a"); var collection3 = document.getElementById("toprightmenu").getElementsByTagName("a"); var collection4 = document.getElementById("toprightbutton").getElementsByTagName("a"); for (i = 0; i <= collection1.length - 1; ++i) { var lien = collection1.item(i); addListener(lien, "click", changeClass2); } for (i = 0; i <= collection2.length - 1; ++i) { var lien = collection2.item(i); addListener(lien, "click", changeClass1); } for (i = 0; i <= collection3.length - 1; ++i) { var lien = collection3.item(i); addListener(lien, "click", changeClass1); } for (i = 0; i <= collection4.length - 1; ++i) { var lien = collection4.item(i); addListener(lien, "click", changeClass1); } } addListener(window, "load", bindAnchors);
Il y a encore une erreur mais cette fois ca viens d'une balise non terminée. Il manque un }
Je ne sais pas ou le placer :p. Il donne lerreur sur la dernierre ligne c-a-d: addlistener(window...
Merci pour tout ton aide.
Groarh
Messages postés
682
Date d'inscription
vendredi 1 août 2008
Statut
Membre
Dernière intervention
28 juin 2015
185
15 oct. 2008 à 14:40
15 oct. 2008 à 14:40
Fais des indentations, tu y verras beaucoup plus clair :
Mais si tu laisses ça comme c'est, au chargement de la page, le navigateur va voir ça comme ça :
" Il y a une fonction slide, elle est déclarée, bon ok très bien, y'a des trucs à l'intérieur mais je regardrai quand on me demandera de l'utiliser. "
Donc le addListener qui est dedans, qui est censé s'exécuter au chargement de la page, il passe à la trappe !
Est-ce vraiment nécessaire d'encapsuler tout ce code dans une fonction slide ?
function slide() { function addListener(o, e, f) { if (o.addEventListener) { o.addEventListener(e, f, false); } else { o.attachEvent("on" + e, f); } } function changeClass1() { document.getElementById("content").className = "slidedone"; document.getElementById("footer").className = "slidedone"; document.getElementById("list").className = "slidedone"; } function changeClass2() { document.getElementById("content").className = "slidedone2"; document.getElementById("footer").className = "slidedone2"; document.getElementById("list").className = "slidedone2"; } function bindAnchors() { var collection1 = document.getElementById("topmenu").getElementsByTagName("a"); var collection2 = document.getElementById("content").getElementsByTagName("a"); var collection3 = document.getElementById("toprightmenu").getElementsByTagName("a"); var collection4 = document.getElementById("toprightbutton").getElementsByTagName("a"); for (i = 0; i <= collection1.length - 1; ++i) { var lien = collection1.item(i); addListener(lien, "click", changeClass2); } for (i = 0; i <= collection2.length - 1; ++i) { var lien = collection2.item(i); addListener(lien, "click", changeClass1); } for (i = 0; i <= collection3.length - 1; ++i) { var lien = collection3.item(i); addListener(lien, "click", changeClass1); } for (i = 0; i <= collection4.length - 1; ++i) { var lien = collection4.item(i); addListener(lien, "click", changeClass1); } } addListener(window, "load", bindAnchors); }
Mais si tu laisses ça comme c'est, au chargement de la page, le navigateur va voir ça comme ça :
" Il y a une fonction slide, elle est déclarée, bon ok très bien, y'a des trucs à l'intérieur mais je regardrai quand on me demandera de l'utiliser. "
Donc le addListener qui est dedans, qui est censé s'exécuter au chargement de la page, il passe à la trappe !
Est-ce vraiment nécessaire d'encapsuler tout ce code dans une fonction slide ?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Winterboard
Messages postés
137
Date d'inscription
jeudi 8 mai 2008
Statut
Membre
Dernière intervention
30 juin 2009
15 oct. 2008 à 20:37
15 oct. 2008 à 20:37
ok les gars ca marche!!!!!!!!!!!!!!!!
mais que si j'enleve les tags du script qui ne sont pas presents sur la page... comme:
Y a til un moyen de dire au navigateur dignorer ces tag s'ils n'existent pas??
merci :)
mais que si j'enleve les tags du script qui ne sont pas presents sur la page... comme:
var collection4 = document.getElementById("toprightbutton").getElementsByTagName("a");
Y a til un moyen de dire au navigateur dignorer ces tag s'ils n'existent pas??
merci :)
Groarh
Messages postés
682
Date d'inscription
vendredi 1 août 2008
Statut
Membre
Dernière intervention
28 juin 2015
185
16 oct. 2008 à 11:51
16 oct. 2008 à 11:51
Heuh, y'a tout un tas de manières :P
Par exemple, tu peux les retirer "en dur" de ton code quand tu les retires de ta page, en virant tous les bouts de code qui utilisent collection4 ;
Tu peux, pour faire plus "secret", intercepter les erreurs en plaçant le code traitant les liens susceptibles de disparaître dans un bloc try/catch avec le catch vide :
Ou alors, faire un test sur collection4 avant la boucle for correspondante,
etc.
Mais tu peux aussi laisser ça comme c'est : le script génère un avertissement, du style document.getElementById("toprightbutton") has no properties, que les utilisateurs ne voient même pas en général ; puis le script continue. Donc c'est pas très grave.
Par exemple, tu peux les retirer "en dur" de ton code quand tu les retires de ta page, en virant tous les bouts de code qui utilisent collection4 ;
Tu peux, pour faire plus "secret", intercepter les erreurs en plaçant le code traitant les liens susceptibles de disparaître dans un bloc try/catch avec le catch vide :
try { var collection4 = document.getElementById("toprightbutton").getElementsByTagName("a"); for (i = 0; i <= collection4.length - 1; ++i) { var lien = collection4.item(i); addListener(lien, "click", changeClass1); } } catch(e) { }
Ou alors, faire un test sur collection4 avant la boucle for correspondante,
if (collection4) { for (...) { ... } }c'est plus rigoureux ;
etc.
Mais tu peux aussi laisser ça comme c'est : le script génère un avertissement, du style document.getElementById("toprightbutton") has no properties, que les utilisateurs ne voient même pas en général ; puis le script continue. Donc c'est pas très grave.
Winterboard
Messages postés
137
Date d'inscription
jeudi 8 mai 2008
Statut
Membre
Dernière intervention
30 juin 2009
16 oct. 2008 à 15:36
16 oct. 2008 à 15:36
non ca ne marche pas si il y a l'erreur. Je vais tester ton truc catch ;)
merci 1000 fois!
merci 1000 fois!
Winterboard
Messages postés
137
Date d'inscription
jeudi 8 mai 2008
Statut
Membre
Dernière intervention
30 juin 2009
16 oct. 2008 à 20:06
16 oct. 2008 à 20:06
ca marche!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
http://m.iwebkit.net
va voir avec safari! c'est l'effet quand tu clique sur un lien. La page se decalle.
Merci10000 fois :)
http://m.iwebkit.net
va voir avec safari! c'est l'effet quand tu clique sur un lien. La page se decalle.
Merci10000 fois :)
Groarh
Messages postés
682
Date d'inscription
vendredi 1 août 2008
Statut
Membre
Dernière intervention
28 juin 2015
185
16 oct. 2008 à 20:17
16 oct. 2008 à 20:17
Ok. Repense au truc avec les if, si tu es perfectionniste comme moi, car le try n'est pas la solution la plus rigoureuse : on corrige les erreurs au lieu de les prévenir...
;)
;)
Winterboard
Messages postés
137
Date d'inscription
jeudi 8 mai 2008
Statut
Membre
Dernière intervention
30 juin 2009
16 oct. 2008 à 20:36
16 oct. 2008 à 20:36
pourrais tu me l'ecrire car je ne voit pas ce que tu veut dire :p