11540 sujets

JavaScript, DOM et API Web HTML5

Bonjour,

J'ai un petit souci que je n'arrive pas à résoudre.
Si une âme charitable peut me dire s'il y a moyen d'y faire quelque chose ou si je vais être obligé de tout reprendre ? Smiley smile

Mon problème est le suivant :
Dans une page HTML, j'ai deux balises <script>
La première contient entre autre des déclarations de variables,
La deuxième utilise ces variables.

Ex. :

<script>
var strToto = "Soleil";
...
</script>
Plein d'autres codes HTML, ...
<script>
alert(strToto);
...
</script>


Bon, dans les faits, c'est plus compliqué ^^ Ca se passe dans une page .aspx, au sein de WebParts Sharepoint 2010 situées dans WebZones différentes, mais l'idée est là.

Le problème est que sous FireFox, ça fonctionne nickel alors que sous Internet Explorer, ça ne marche pas.
J'ai une erreur javascript sur la page qui me dit :
strToto est indéfini

J'en déduis donc que la variable n'est pas reconnu par le navigateur comme déclarée pour toute la page ?
Il y a un moyen simple d'y faire quelque chose ? Autre que de tout mettre dans la même balise <script> ? Smiley smile

D'avance merci,

manu
Bonjour,

Tu dois avoir une erreur dans ton script car dans ton exemple, tu verras qu'il fonctionne très bien en soit.

http://jsbin.com/welcome/14650

Sinon, en terme de bonne pratique, je te conseille de clairement attaché tes variables globales au scope global `window`. e.g.:


<script>
window.strToto = "Soleil";
...
</script>
Plein d'autres codes HTML, ...
<script>
alert(window.strToto);
...
</script>
Bonjour,

J'ai tenté de modifier mon script en suivant ton conseil, mais ça ne fonctionne toujours pas sous mon IE8, alors que ton code fonctionne bien lui. J'en déduis donc que je dois avoir un conflit quelque part avec tout le javascript qui tourne sous SharePoint.

Et comme je ne pourrai pas changer SharePoint, j'ai eu plus vite fait de changer mon code pour tout mettre dans une seule balise <script>, même si ça m'a bien saoûlé.

Merci pour la réponse Smiley smile

Manu