Page 1 sur 1

Code fonctionnant sous IE mais pas sous Mozilla

Publié : 01 août 2005, 17:35
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

Publié : 01 août 2005, 18:23
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 :)

Code fonctionnant sous IE mais pas sous Mozilla

Publié : 02 août 2005, 16:41
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

Publié : 02 août 2005, 21:32
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"; 
...

Code fonctionnant sous IE mais pas sous Mozilla

Publié : 03 août 2005, 21:54
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

Re: Code fonctionnant sous IE mais pas sous Mozilla

Publié : 03 août 2005, 22:31
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:

En Javascript modification attributs de la balise <param&

Publié : 04 août 2005, 11:25
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