Page 1 sur 1

Soucis avec code javascript (erreur de syntaxe)

Posté : 27 janv. 2009, 13:19
par Cobra52
Bonjour à tous,

J'ai un soucis avec ce code javascript (erreur de syntaxe):

Code : Tout sélectionner

function do_ct() { if (countdown <= 0) { document.write("<div id=\"ct\" style=\"float: <?php echo $float;?>\; margin: <?php echo $margin;?>\; padding: <?php echo $padding;?>\; border: <?php echo $border_size;?> <?php echo $border_style;?> <?php echo $border_color;?>\; background: <?php echo $background;?>\; height: <?php echo height;?>\; width: <?php echo $width;?>\; font-family: <?php echo $font;?>\; color: <?php echo $font_color;?>\; font-size: <?php echo $font_size;?>\; font-weight: <?php echo $font_weight;?>\; text-align:center\;\">Test 1</div>\n"); } else { document.getElementById('ct').innerHTML = convert_to_time(countdown); setTimeout('do_ct()', 1000); } countdown = countdown - 1; } document.write("<div id=\"ct\" style=\"float: <?php echo $float;?>\; margin: <?php echo $margin;?>\; padding: <?php echo $padding;?>\; border: <?php echo $border_size;?> <?php echo $border_style;?> <?php echo $border_color;?>\; background: <?php echo $background;?>\; height: <?php echo height;?>\; width: <?php echo $width;?>\; font-family: <?php echo $font;?>\; color: <?php echo $font_color;?>\; font-size: <?php echo $font_size;?>\; font-weight: <?php echo $font_weight;?>\; text-align:left\;\">Test 2</div>\n"); do_ct();
Il est inséré dans un fichier php.
Si je supprime cette partie, le script fonctionne, sans rien afficher (normal), et dès que je réintègre cette portion de code, j'ai l'erreur.
Le erreur renvoyée :
ligne 2, caractère 1, code 0

Mais je ne vois pas du tout ce qu'il peut y avoir.

Si vous pouviez m'aider.
Merci par avance :wink:

Posté : 27 janv. 2009, 14:04
par Berzemus
C'est IE qui te lance cette erreur ? essaye firefox + firebug pour débugger du Js.

Posté : 27 janv. 2009, 15:02
par Cobra52
C'est IE qui te lance cette erreur ? essaye firefox + firebug pour débugger du Js.
Ok, je vais essayer cela.
C'est un plugin de Firefox ?

Merci.

Posté : 27 janv. 2009, 15:31
par Berzemus
Oui, bien vu ;)

Tu auras un petit insecte dans le coin en bas à droite, sur lequel il faudra cliquer pour voir apparaitre son interface et activer le débuggage sur le site en cours. S'il y à des erreurs, ils apparaitront dans la console de firebug.

Posté : 27 janv. 2009, 15:48
par AB
C'est certain que pour débugger du Js à l'aide des signalements d'IE, faut pas avoir d'idées suicidaires. Et puis on installe Firebug et l'espoir revient :D

Posté : 27 janv. 2009, 15:55
par Berzemus
C'est certain que pour débugger du Js à l'aide des signalements d'IE, faut pas avoir d'idées suicidaires. Et puis on installe Firebug et l'espoir revient :D
Note que, y'a moyen, avec le script debugger. Ou avec une beta (voir la RC qui vient de sortir) d'IE 8. Mais bon, ça reste que c'est pas la même chose.

Posté : 27 janv. 2009, 16:08
par Cobra52
C'est IE qui te lance cette erreur ? essaye firefox + firebug pour débugger du Js.
Alors là, chapeau bas !!!!
MERCI MERCI ET RE RE MERCI !!! :D
C'est certain que pour débugger du Js à l'aide des signalements d'IE, faut pas avoir d'idées suicidaires. Et puis on installe Firebug et l'espoir revient :D
Oui, j'ai passé 2 jours sur cette erreur. Mais grace à firebug, je sais maintenant que ce n'est pas dû au javascript, comme je le croyais et me le faisait penser le retour d'erreur de I.E.
C'est un soucis de } (accolade non fermée) dans le script (donc dans son site, l'erreur m'est indiquée comme étant dans ses pages) d'un sponsor de pub. Une fois la pub suprimée dans mon footer, magie, mon javascript fonctionne !!! HEU REUX :D

J'en ai profité pour nettoyer les autres erreurs, dans mon fichier css notamment (ça fait peur la première fois), c'est terriblement efficace !
C'est certain que pour débugger du Js à l'aide des signalements d'IE, faut pas avoir d'idées suicidaires. Et puis on installe Firebug et l'espoir revient :D
Note que, y'a moyen, avec le script debugger. Ou avec une beta (voir la RC qui vient de sortir) d'IE 8. Mais bon, ça reste que c'est pas la même chose.
Oui, j'avais testé cela hier, mais pas moyen de savoir d'où venait l'erreur avec cet outil.

Allez, good bye I.E et GOOD MORNING FIREFOXXXX !!!

Merci à vous =D> :pouce:

Posté : 27 janv. 2009, 16:23
par AB
Allez, good bye I.E et GOOD MORNING FIREFOXXXX !!!
Merci à vous =D> :pouce:
C'est également certain que si tu ne connaissais pas FF c'est comme si tu avais gagné au loto aujourd'hui :lol:
D'autant que tu peux télécharger tout plein de modules intéressants pour le développement comme "webdeveloper" mais aussi des modules plus ludiques comme "DownloadHelper", un must have :)

Posté : 27 janv. 2009, 16:51
par Berzemus
Moi, je sais pas vous, mais ça m'émeut quand quelqu'un découvre firebug.. c'est beau, et quelque part, je suis jaloux.. snrifll.. :cry: :oops:

Posté : 27 janv. 2009, 20:09
par Cobra52
Zut, je reviens vers vous :cry:
J'ai été trop optimiste :oops:

En fait, j'ai toujours le soucis d'affichage sous I.E (mais pas sous FireFox et pas d'erreur avec Firebug).

Le code en question :

Code : Tout sélectionner

function do_cd() { if (countdown <= 0) { document.write("<div id=\"cd\" style=\"float: <?php echo $float;?>\; margin: <?php echo $margin;?>\; padding: <?php echo $padding;?>\; border: <?php echo $border_size;?> <?php echo $border_style;?> <?php echo $border_color;?>\; background: <?php echo $background;?>\; height: <?php echo height;?>\; width: <?php echo $width;?>\; font-family: <?php echo $font;?>\; color: <?php echo $font_color;?>\; font-size: <?php echo $font_size;?>\; font-weight: <?php echo $font_weight;?>\; text-align: center\;\">Test 1</div>\n"); } else { document.getElementById('cd').innerHTML = convert_to_time(countdown); setTimeout('do_cd()', 1000); } countdown = countdown - 1; } document.write("<div id=\"cd\" style=\"float: <?php echo $float;?>\; margin: <?php echo $margin;?>\; padding: <?php echo $padding;?>\; border: <?php echo $border_size;?> <?php echo $border_style;?> <?php echo $border_color;?>\; background: <?php echo $background;?>\; height: <?php echo height;?>\; width: <?php echo $width;?>\; font-family: <?php echo $font;?>\; color: <?php echo $font_color;?>\; font-size: <?php echo $font_size;?>\; font-weight: <?php echo $font_weight;?>\; text-align: left\;\">Test 2</div>\n"); do_cd();
Et plus particulièrement cette partie, celle située avant fonctionne :

Code : Tout sélectionner

else { document.getElementById('cd').innerHTML = convert_to_time(countdown); setTimeout('do_cd()', 1000); } countdown = countdown - 1; } document.write("<div id=\"cd\" style=\"float: <?php echo $float;?>\; margin: <?php echo $margin;?>\; padding: <?php echo $padding;?>\; border: <?php echo $border_size;?> <?php echo $border_style;?> <?php echo $border_color;?>\; background: <?php echo $background;?>\; height: <?php echo height;?>\; width: <?php echo $width;?>\; font-family: <?php echo $font;?>\; color: <?php echo $font_color;?>\; font-size: <?php echo $font_size;?>\; font-weight: <?php echo $font_weight;?>\; text-align: left\;\"></div>\n"); do_cd();
Je rappelle que I.E m'indiquait une erreur de syntaxe.

Moi j'ai beau chercher dans tous les sens, ben je ne vois pas !

Merci à vous tous :wink:

Posté : 27 janv. 2009, 22:08
par thehawk
les getElementById => Sont interpréter par FF mais pas par IE.

http://msdn.microsoft.com/en-us/library ... S.85).aspx

Bonne chance, avec IE.

Posté : 28 janv. 2009, 09:40
par Cobra52
En fait, le script fonctionne en local (easyphp2) :
sous I.E et FireFox

en production :
fonctionne sous FireFox, mais pas avec I.E 6 et 7 (page blanche et mon processeur s'emballe).

Je dois avoir un soucis de " ou ' dans le fichier.

Bizarrement, ce problème est apparu après avoir changer d'hébergeur et je suis passé de php4 à 5.

Posté : 28 janv. 2009, 12:17
par Berzemus
Plutôt que de t'amuser (et de perdre ton temps) avec les compatibilité de JS, je te conseille d'utiliser un framework, comme Jquery ou prototype.

Par exemple, ceci:

Code : Tout sélectionner

document.getElementById('cd').innerHTML = convert_to_time(countdown);
S'écrirait comme ceci en Jquery:

Code : Tout sélectionner

$("#cd").html(convert_to_time(countdown));
Et serait 100% compatible avec la majorité des navigateurs...

Posté : 29 janv. 2009, 10:03
par Cobra52
Plutôt que de t'amuser (et de perdre ton temps) avec les compatibilité de JS, je te conseille d'utiliser un framework, comme Jquery ou prototype.

Par exemple, ceci:

Code : Tout sélectionner

document.getElementById('cd').innerHTML = convert_to_time(countdown);
S'écrirait comme ceci en Jquery:

Code : Tout sélectionner

$("#cd").html(convert_to_time(countdown));
Et serait 100% compatible avec la majorité des navigateurs...
Je ne connais pas du tout ces 2 framework.
Il faut donc que je trouve de la doc. et me mette à réapprendre.

Merci ;)

Edit :

Sur Script Debugger j'avais cette erreur :

Code : Tout sélectionner

document.write('<table border="0" cellpadding="0" cellspacing="0" align="center"><tr><td alig=center>');document.write('<a href="http://www.stats.fr/out.php?id=1171" target="_blank">');document.write('<img src="http://www.stats.fr/images/pub/pub.gif" border="0"></a>');document.write('</td></tr></table>')
Donc j'ai enlevé le code du stat :

Code : Tout sélectionner

<script language="javascript"> document.write("<script language='javascript' src='http://2213.stats.stats.fr/stats/code.php?xxxx,0,"+document.referrer+"'><\/script>"); </script> <noscript> <a href="http://www.stats.fr" target="_top"> <img border=0 src="http://2213.stats.stats.fr/stats/logo.php?xxxx"></a> </noscript>
et maintenant le javascript fonctionne sans erreur sur I.E ou FireFox !