[DOM] Création de nodes en DOM
Bonjour.
Je rencontre un problème lors d'une création de noeud DOM :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
|
function addMediaPlayer( mediaUrl, containerID, replaceContent ) {
try {
var container = document.getElementById( containerID );
if (container == null) {
alert("cannot initialize media player");
return;
}
// n'ajouter l'élément que si il n'est pas déjà présent
var playerId = containerID+"/mediaPlayer";
var existingPlayer = document.getElementById( playerId );
if ( existingPlayer == null) {
var mplayer = document.createElement( "object" );
mplayer.setAttribute( 'type', 'audio/x-mp3' );
mplayer.setAttribute( 'data', mediaUrl );
mplayer.setAttribute( 'width', '200' );
mplayer.setAttribute( 'height', '20' );
mplayer.setAttribute( 'id', containerID+"/mediaPlayer" );
var param = document.createElement("param");
param.setAttribute( 'name', 'src' );
param.setAttribute( 'value', mediaUrl );
mplayer.appendChildNode ( param );
param = document.createElement("param");
param.setAttribute( 'name', 'autoplay' );
param.setAttribute( 'value', 'false' );
mplayer.appendChildNode ( param );
param = document.createElement("param");
param.setAttribute( 'name', 'autoStart' );
param.setAttribute( 'value', '0' );
mplayer.appendChildNode ( param );
container.appendChildNode( mplayer );
} else {
alert( containerID+"/mediaPlayer déja présent !");
}
} catch (e) {alert("problème :\n" + e);}
} |
Le noeud mplayer semble mal initialisé et Firebug m'annonce que mplayer est une fonction. J'ai tenté de renommer ma variable, craignant la surcharge d'un nom réservé, mais sans aucun effet. Je me demande donc si ça ne viendrait pas du "object", mais je ne vois pas de raisons.
Il plante systématiquement lors de l'appel de mplayer.appendChildNode ( param );
Merci d'avance.