IE et Edge ne lisent pas les scripts avec variables !

Résolu/Fermé
Quedza Messages postés 242 Date d'inscription mercredi 5 mars 2008 Statut Membre Dernière intervention 21 janvier 2022 - Modifié par Quedza le 18/01/2016 à 19:39
Quedza Messages postés 242 Date d'inscription mercredi 5 mars 2008 Statut Membre Dernière intervention 21 janvier 2022 - 20 janv. 2016 à 12:30
Bonjour,

Tout est dit dans le titre : IE ET Edge, les navigateurs les plus utilisés parce que préinstallés dans Windows, ne lisent pas mes scripts avec variables… Grrrrr. J'ai testé chez moi, mais aussi dans plusieurs autres endroits.

Mes scripts avec variables fonctionnent sur Firefox, SeaMonkey, Chrome, Opera (et sans doute Chromium). Je ne sais par contre pas pour Safari. J'ai essayé d'améliorer mon script (en réalité, je l'ai rendu plus long), sans résultat (j'ai évidemment fait demi-tour).
Par contre, mes scripts sans variables fonctionnent aussi sur IE et Edge.

J'ai essayé de désactiver la sécurité sur ces navigateurs, mais rien n'y a fait.

Avez-vous une raison, ou, mieux, une solution ? Une balise meta ?

Je vous remercie par avance.
A voir également:

2 réponses

Pitet Messages postés 2826 Date d'inscription lundi 11 février 2013 Statut Membre Dernière intervention 21 juillet 2022 525
19 janv. 2016 à 14:20
Salut,

Que veux tu dire par "script avec variables" ? L'utilisation du mot clé var ??

As tu un exemple de code ?

Bonne journée,
0
Quedza Messages postés 242 Date d'inscription mercredi 5 mars 2008 Statut Membre Dernière intervention 21 janvier 2022 18
19 janv. 2016 à 15:57
Merci de te soucier de mon problème.

C'est vrai qu'un image vaut mille mots.

Donc voilà : http://l.munch.free.fr/calendrier_avent/antichambre.php

Consulte ce calendrier avec IE ou Edge et jette un œil sur le code source.

La page fonctionne sur les autres ordinateurs. Je ne teste jamais avec IE, et voilà le résultat… :(

Oui, je sais, le codage n'est sans doute pas parfait, mais je ne prétends pas être développeur et n'utilise que Notepad++.

Bref, en clair, avec IE ou Edge, les "fenêtres" du calendrier ne "s'ouvrent" pas après les clics sur les fenêtres. Les volets devraient "laisser place" à des vignettes et de la musique (en fait, des vignettes devraient se placer sur l'image de fond après les clics sur les cases).

Et j'ignore l'erreur. Je préférerais encore que le script ne fonctionne sur aucun navigateur…

Sur d'autres pages (http://l.munch.free.fr/ la musique est lue, même si elle dynamisée…

Alors? Sécurité? Manque de Meta-tag? Erreur que les browsers autres que IE et Edge corrigent ignorent automatiquement?
0
Pitet Messages postés 2826 Date d'inscription lundi 11 février 2013 Statut Membre Dernière intervention 21 juillet 2022 525
Modifié par Pitet le 19/01/2016 à 16:38
L'erreur vient de la comparaison sur le contenu de la balise cliquée, ligne 18 :
if (document.getElementById(j).innerHTML == '<img class="image" src="nombres/'+j+'t.png" alt="image" onclick="jour('+j+')">')


En affichant le contenu de la balise cliqué juste avant ce test (par exemple via l'instruction
console.log(document.getElementById(j).innerHTML);
), on constate effectivement une différence entre Firefox et Edge :

# Firefox
<img class="image" src="nombres/02t.png" alt="image" onclick="jour(02)">

# Edge
<img class="image" onclick="jour(02)" alt="image" src="nombres/02t.png">


Edge réorganise effectivement les attributs, la condition n'est donc pas correcte.

Cette condition est utilisée pour vérifier si la case a déjà été ouverte ? Si c'est le cas, il serait plus simple d'ajouter une classe css sur les cases déjà ouvertes et de remplacer la condition actuelle par une vérification de la présence de cette classe.
0
Quedza Messages postés 242 Date d'inscription mercredi 5 mars 2008 Statut Membre Dernière intervention 21 janvier 2022 18
Modifié par Quedza le 19/01/2016 à 19:46
Oh, le sa… le snitche de IE ! Se permettre de telles initiatives ! C'est bas… Il faut croire qu'IE s'imaginait que tous les développeurs utilisent des logiciels pour l'ordre des syntaxes… Et qu'Edge se permet la même chose. "Digne successeur d'IE", hein…

Un immense merci !

Grâce à toi, j'ai réussi à le rendre fonctionnel avec tous les navigateurs !

Et je saurais pour les futures pages…

Comment as-tu trouvé ça ? Avec Firebug ? J'ai ce module, mais je ne l'ai pour ainsi dire jamais utilisé et ne connait pas vraiment son utilité. Je sais juste qu'il est utile et qu'il agit comme de la drogue : une fois qu'on l'a utilise sérieusement, on ne peut plus s'en passer. Je le garde sous la main…

Remarques :
- Peut-être que si j'avais utilisé un logiciel de création web de prémâchage du travail, l'ordre aurait tout de suite été respecté…
- Je vois qu'Edge n'a pas complètement abandonné les bases d'IE…
0
Pitet Messages postés 2826 Date d'inscription lundi 11 février 2013 Statut Membre Dernière intervention 21 juillet 2022 525
20 janv. 2016 à 09:16
Pour trouver le bug, j'ai simplement ajouter plusieurs console.log() dans ton code pour analyser la valeur des variables.
Le problème initial est que la méthode utilisée n'est pas forcément la meilleure (cf. proposition d'ajouter une classe).
Enfin pour relativiser un peu : https://www.emmanuelbeziat.com/blog/internet-explorer-mon-amour/
0
Quedza Messages postés 242 Date d'inscription mercredi 5 mars 2008 Statut Membre Dernière intervention 21 janvier 2022 18
20 janv. 2016 à 12:30
Hey !

Ne me faites pas dire ce que je n'ai pas dit.

Pour ce qui est de ne pas être un codeur pur et dur, je l'assume pleinement. Je pourrais même dire que le vrai développement ne m'intéresse guère, autrement dit "pas plus que ça". Je le fais un peu "par défaut", n'ayant pas la possibilité d'avoir beaucoup d'autres loisirs. Je tiens plus à l'affichage et au fonctionnement de mes moteurs qu'à leur aspect.

Mais je n'ai pas dit qu'IE et Edge étaient mauvais. Je ne me satisfais pas des on-dit sans arguments. Il est vrai que je n'utilise que très rarement IE. Mais si j'utilise le navigateur Firefox par défaut, à la base, c'est parce qu'il n'y avait pas autant d'extensions sur IE que sur Firefox (mais aujourd'hui, peut-être qu'il y a les mêmes).

En bref, je ne crois et ne dis que ce que je vois, comme Saint Thomas… Si un logiciel me convient, je le garde, même si l'on me dit qu'il est nul… Tant qu'il me convient, je n'ai pas de raison de ne plus l'utiliser et de le blâmer comme d'autres qui n'ont pas d'arguments valables derrière leur déclarations hâtives.

Par contre, je ne suis pas assez avancé pour défendre IE et Edge. En clair, je n'avais pas plus d'arguments négatifs que positifs jusqu'à maintenant, grâce au lien. Je laisse dire les personnes soi-disant de haut-niveau qu'IE et Edge sont de mauvais navigateurs, mais ce n'est pas moi qui répète de choses sans avoir d'arguments fondés. D'ailleurs, je ne suis pas un bon orateur. Et nombreux sont ceux préférant croire les personnes dotés d'une bonne expression orale.

Peut-être avez-vous pensé que je blâmais IE et Edge parce qu'il ne fonctionnaient pas… Pas du tout! J'ai simplement indiqué les constats. J'ai conscience que mes codes sont très modestes, pour ne pas dire un peu délirants. J'ai au contraire appris que l'ordre des instructions n'était pas superflu. Et cela résout des questions que je me posais plusieurs de mes pages.

Cela dit, oui, je peux m'énerver sur quelque chose que je ne trouve pas après une longue recherche non fructueuse, et j'ai la fâcheuse tendance d'accuser des innocents, déjà désignés par d'autres, alors je ne n'accuse rien ni personne autrement. Personne n'est parfait…

Merci pour le lien, mais je dois avouer que j'ai été un peu attristé par le fait qu'Emmanuel écrive qu'"il n'y a que du mauvais code", même s'il s'agit d'un fait. Il n'y a que la vérité qui blesse… Je pense cependant qu'il voulait notamment toucher les personnes ayant une opinion arrêtée, personnes que je méprise.
0