Bonjour,
Je suis enseignant et l'auteur d'un petit logiciel d'évaluation, Questy (http://questy.waika9.com) qui permet, entre autre de générer automatiquement des questionnaires à choix multiples utilisables sur le web (page HTML et javascript).
De nombreux collègues utilisent mon logiciel pour créer des questionnaires en ligne et les pages réalisées fonctionnent parfaitement lorsque le navigateur est Internet Explorer mais le module de correction se bloque sur Netscape et Mozilla ; je ne comprend pas d'où vient le problème !
Pour vous donner une idée, voici un lien (au hasard !) d'un questionnaire en ligne : http://www.edunet.ch/classes/reussilles ... evasom.htm
Je vous précise que je ne suis absolument pas programmeur ( c'est du bricolage) et le code généré par mon logiciel est certainement pas beau à voir !
Merci pour votre aide !
Mozilla-Questy ?
Les problèmes surviennent dès qu'un appel à document.write est fait dans la fonction correction(). À ce moment là, toutes les variables et les fonctions définies précédemment ne sont pas trouvées, la console de debug javascript indiquant qu'elles sont indéfinies.
Si on omets tout document.write dans la fonction correction, les variables et les fonctions sont trouvées.
Je ne suis pas sûr à 100% de ce que j'avance, mais comme ces document.write auront pour effet d'écrire après la balise fermante </html>, on perd la visibilité des variables et des fonctions définies précédemment (qui appartiennent au document défini entre les balises <html> et </html>.
Mon conseil : éviter à tout prix le document.write. À la place, une méthode beaucoup plus robuste, élégante, et qui fonctionne en XML (au cas où tu feras une évolution de html à xhtml) est de manipuler l'arbre de ton document.
Par manipulation de ton arbre, j'entends créer des nœuds, en supprimer, créer des attributs, en modifier, le tout dynamiquement.
Voici un exemple de manipulation de l'arbre :
Fonctionne sous Firefox, IE6, Opera 7
Une bonne référence sur le DOM, (attention, incluant les spécificités Gecko) : http://www.mozilla.org/docs/dom/domref/
Si on omets tout document.write dans la fonction correction, les variables et les fonctions sont trouvées.
Je ne suis pas sûr à 100% de ce que j'avance, mais comme ces document.write auront pour effet d'écrire après la balise fermante </html>, on perd la visibilité des variables et des fonctions définies précédemment (qui appartiennent au document défini entre les balises <html> et </html>.
Mon conseil : éviter à tout prix le document.write. À la place, une méthode beaucoup plus robuste, élégante, et qui fonctionne en XML (au cas où tu feras une évolution de html à xhtml) est de manipuler l'arbre de ton document.
Par manipulation de ton arbre, j'entends créer des nœuds, en supprimer, créer des attributs, en modifier, le tout dynamiquement.
Voici un exemple de manipulation de l'arbre :
Code : Tout sélectionner
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-15" />
<title>Title</title>
<script type="text/javascript">
function CreatePage()
{
// Crée un paragraphe
var body = document.getElementsByTagName("body")[0];
var p = document.createElement("p");
var txt = document.createTextNode("Ceci est le texte de mon paragraphe");
p.appendChild(txt);
body.appendChild(p);
// Modifie un attribut du paragraphe
p.style.border = "1px solid black";
}
</script>
</head>
<body onload="CreatePage();">
</body>
</html>
Une bonne référence sur le DOM, (attention, incluant les spécificités Gecko) : http://www.mozilla.org/docs/dom/domref/
On dirait plutôt que ça tente de remplacer le contenu de la page plutôt que de se mettre après, ce qui ferait également disparaitre l'élément script lui-même, d'où le blocage apparentPsyDk a écrit :[...]Je ne suis pas sûr à 100% de ce que j'avance, mais comme ces document.write auront pour effet d'écrire après la balise fermante </html>, on perd la visibilité des variables et des fonctions définies précédemment (qui appartiennent au document défini entre les balises <html> et </html>.

Qui est en ligne ?
Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 3 invités