Code fonctionnant sous IE mais pas sous Mozilla

HTML5, CSS3, Javascript, support des mobiles... Que penser de votre site ? Vous manquez d'informations pour la construction d'un site qui puisse s'afficher correctement partout ? C'est un problème simple, un peu complexe ? Venez ici !
HPz
Arias
Messages : 14
Inscription : 01 août 2005, 17:05

Code fonctionnant sous IE mais pas sous Mozilla

Message par HPz »

Bonjour

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/tr/html4/transitional.dtd">
<!-- validé par w3.org le 31.07.05 -->
<!-- En ligne, fonctionne sous IE mais pas sous Mozilla ni NS -->
<html>
<head>
<title>Sonnerie</title>
<meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1">
<script type="text/JavaScript" language="JavaScript">
function EmmSon(Rang)
{
ver=parseInt(navigator.appVersion);
if (ver > 2 && navigator.appName=="Netscape"
&& navigator.mimeTypes['audio/basic']
&& navigator.javaEnabled())
{
document.getElementById("Obj").data = "Sonnette-0.au";
document.getElementById("Obj").filename = "Sonnette-0.au";
}
if (ver>3 && navigator.appName.indexOf("Microsoft")!=-1)
{
switch(Rang)
{
case 0:
document.all["Obj"].data="Sonnette-0.au";
document.all["Obj"].filename="Sonnette-0.au";
break;
case 1:
document.all["Obj"].data="Sonnette-1.au";
document.all["Obj"].filename="Sonnette-1.au";
break;
}
}
}
</script>
</head>
<body>
<!-- Cartographie de l'image des boutons de sonnette -->
<map name="Sonnette">
<area shape="circle" coords="16, 22,8" href="JavaScript:EmmSon(1)" alt="">
<area shape="circle" coords="16, 54,8" href="JavaScript:EmmSon(0)" alt="">
</map>
<table width="100%">
<tr>
<td>
<!-- Affichage de l'image des boutons de sonnette en attente de clic -->
<center>
<img border="0" width="172" height="77" src="Sonnette.gif" usemap="#Sonnette" alt="">
</center>
<!-- Elément "object" en attente d'attribut 'data' et valeur qualification -->
<object id="Obj" type="audio/basic" width="0" height="0" data="">
<param name="filename" value=""/>
<param name="loop" value="false"/>
<param name="autostart" value="true"/>
</object>
</td>
</tr>
</table>
</body>
</html>

Sous Internet Explorer 6.00 ce code fonctionne aussi bien en local qu'en ligne mais absolument pas sous Mozilla 1.7.10 ni Netscape 7.00

La validation par w3c.org se fait sans problème. (Ni bgsound, ni embed)

Quelqu'un a-t-il une idée?

Visible et audible à http://perso.wanadoo.fr/henri.pouzoullic/s-son/

Merci d'avance

HP
calimo
Animal mythique
Messages : 14118
Inscription : 26 déc. 2003, 11:51

Message par calimo »

Validé par le W3C ne veut pas dire qu'il ne contient pas d'erreurs. En particulier, le validateur du W3C ne regarde absolument pas le code javascript (et beaucoup d'autres choses).

En l'occurence, je vois deux problèmes dans ton script :
  1. Une (non, deux !) détection de navigateur
  2. document.all qui est propriétaire de MSIE.
Je ne sais pas trop où tu l'as trouvé, mais tu peux le mettre à la poubelle.

Je suis sur que quelqu'un par ici saura faire ça proprement en modifiant les attributs à l'aide du DOM Javascript :)
HPz
Arias
Messages : 14
Inscription : 01 août 2005, 17:05

Code fonctionnant sous IE mais pas sous Mozilla

Message par HPz »

Voila, j'ai carrément supprimé les tests concernant le navigateur du visiteur.
J'ai considéré que la propriété "getElementBy Id(...)" est reconnue systématiquement.
Ce qui est à nouveau le cas pour IE qui fonctionne sans problème tant en local qu'en ligne, alors que Mozilla et Netscape ne fonctionnent en aucun cas.
Les problèmes les plus simples ne le sont pas toujours, semble-t-il...
Le code est toujours à la même adresse:
http://perso.wanadoo.fr/henri.pouzoullic/s-son/
HP
calimo
Animal mythique
Messages : 14118
Inscription : 26 déc. 2003, 11:51

Message par calimo »

D'un coup c'est nettement plus clair :)

Je crois que pour définir des attributs, il faut utiliser la fonction setAttribute()

Code : Tout sélectionner

document.getElementById("Obj").setAttribute("data") = "Sonnette-0.au"; 
...
HPz
Arias
Messages : 14
Inscription : 01 août 2005, 17:05

Code fonctionnant sous IE mais pas sous Mozilla

Message par HPz »

J'ai bien modifié le code avec setAttribute(...,...) où j'ai spécifié les noms et valeurs des deux attributs que je voulais modifier:
Le premier setAttribut("name","Sonnette-0.au")
Le second setAttribut("filename","Sonnette-0.au")
Aucun problème pour IE Mais, silence pour Mozilla et Netscape.
Je me suis demandé si Mozilla et Netscape n'étaient pas purement et simplement muets.
Alors dans l'élément <Object....> j'ai mentionné le nom d'un fichier son en name="Oiseau.au" et en initialisation dans l'élément <param name="filename value="Oiseau.au">.
En local à l'ouverture de la page, j'ai bien le son correspondant au fichier "Oidseau.au" qui est émis par Netscape mais pas par Mozilla (Netscape, au moins, lui, n'est pas muet). Par contre en ligne, pour Mozilla, rien, pas de son et pour Netscape, pas de son non plus mais un message d'erreur:
Unknown extension on file, bla, bla, bla...
Il semblerait que Mozilla et Netscape ne comprennent pas ou n'interprètent pas les les ordres en provenance de JavaScript ce qui est contraire à toute la littérature que l'on peut lire sur le web...
Je suis vraiment perplexe.
HP
calimo
Animal mythique
Messages : 14118
Inscription : 26 déc. 2003, 11:51

Re: Code fonctionnant sous IE mais pas sous Mozilla

Message par calimo »

HPz a écrit :J'ai bien modifié le code avec setAttribute(...,...) où j'ai spécifié les noms et valeurs des deux attributs que je voulais modifier:
Le premier setAttribut("name","Sonnette-0.au")
Le second setAttribut("filename","Sonnette-0.au")
Attention, "filename" n'est pas un attribut d'Obj hein :wink: C'est un autre élément avec deux attributs, dont un a la valeur "filename" et dont l'autre devra prendre la valeur "son.au".
HPz a écrit :Aucun problème pour IE Mais, silence pour Mozilla et Netscape.
Je me suis demandé si Mozilla et Netscape n'étaient pas purement et simplement muets.
Non non, rassure-toi, ce n'est normalement pas le cas :P
HPz a écrit :Alors dans l'élément <Object....> j'ai mentionné le nom d'un fichier son en name="Oiseau.au" et en initialisation dans l'élément <param name="filename value="Oiseau.au">.
En local à l'ouverture de la page, j'ai bien le son correspondant au fichier "Oidseau.au" qui est émis par Netscape mais pas par Mozilla (Netscape, au moins, lui, n'est pas muet). Par contre en ligne, pour Mozilla, rien, pas de son et pour Netscape, pas de son non plus mais un message d'erreur:
Unknown extension on file, bla, bla, bla...
Si j'essaye d'accéder directement au fichier son, on dirait qu'il n'existe pas :|... ? Évidemment dans ce cas ça va pas être facile de le jouer :?
Oar contre le message d'erreur est étonnant, l'extension n'a rien à voir là dedans...
HPz a écrit :Il semblerait que Mozilla et Netscape ne comprennent pas ou n'interprètent pas les les ordres en provenance de JavaScript ce qui est contraire à toute la littérature que l'on peut lire sur le web...
Je suis vraiment perplexe.
HP
Clique sur un des smileys à gauche... c'est du javascript, ça marche, pas de doute là-dessus :lol:

Mais je ne sais vraiment pas ce qui peut se passer ici... :? Normalement il y a quelques personnes qui s'y connaissent mieux que moi en javascript par ici, essaye de mettre un titre plus explicite, peut-être que ça les attirera :wink:
HPz
Arias
Messages : 14
Inscription : 01 août 2005, 17:05

En Javascript modification attributs de la balise <param&

Message par HPz »

D'accord, je vais essayer un autre libellé de sujet.
"En Javascript modification attributs de la balise <param>"
Car c'est bien de cela en fait qu'il s'agit.
Je te tiens au courant de la suite.
Merci
HP
Répondre

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 1 invité