1

Ich habe einen Flash-Film, den ich mit Javascript bekommen muss.Getting a Flash Film mit Javascript in IE

Hier ist, wie ich es einbetten mit swf object:

<div id="ap1_mod"></div> 
<script type="text/javascript"> 
    var flashvars = { 
     mp3Path: "stop", 
     artistName : "", 
     trackName : "" 
    }; 
    var params = { 
     codebase: 'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0', 
     src: '/public/flash/ap1_mod.swf', 
     quality: 'high', 
     pluginspage: 'http://www.macromedia.com/go/getflashplayer', 
     scale: 'showall', 
     devicefont: 'false', 
     bgcolor: '#999999', 
     name: 'ap1_mod', 
     menu: 'true', 
     allowFullScreen: 'false', 
     allowScriptAccess:'always', //sameDomain 
     movie: '/public/flash/ap1_mod.swf', 
    wmode: "transparent", 
    allowfullscreen: "true" 
    }; 

    swfobject.embedSWF("/public/flash/ap1_mod.swf", "ap1_mod", "400", "50", "9.0.0", false, flashvars, params); 
</script> 

und hier ist, wie ich versuchen, darauf zuzugreifen:

function getFlashMovie(movieName) { 
    var isIE = navigator.appName.indexOf("Microsoft") != -1; 
    return (isIE) ? window[movieName] : document[movieName]; 
} 

Wie üblich, ist es gut funktioniert in Firefox und Safari, aber es ist Einbruch in IE. Wenn ich eine Warnung hinzufüge: um anzuzeigen, was getFlashMovie zurückgibt, bekomme ich "undefiniert".

Irgendeine Idee?

Vielen Dank

Antwort

4

Gemäß der Dokumentation ersetzt embedSWF das Element, das Sie mit dem Objekt angeben, so dass Sie würde einfach verwenden:

var movie = document.getElementById("ap1_mod"); 

Ich habe nicht wirklich überprüft, aber weil das div-Element mit einem Objekt wird ersetzt Element, ist es möglich, dass es nicht als Eigenschaft von Fenster in IE neu registriert wird.

+0

Es repariert es! Ich habe nicht daran gedacht. Ich bin immer wieder überrascht, dass diese Art, swf einzubinden, das Leben leichter macht. Danke – marcgg

+0

Kein Problem, froh, dass es für Sie behoben. –

1

Können Sie ein id im params und dann benutzen Sie einfach an:

document.getElementById('theId'); 

referenzieren die <object>, die von swfobject erstellt wird?