Poprawne osadzanie Flash w (X)HTML bez javascript-u i poprawka Eolas dla IE
| kategoria: Flash, HTML i XHTML | Komentarze (1)
Jest wiele sposobów na poprawne osadzanie flash-a w (X)HTML-u. My proponujemy rozwiązanie, które:
- do uruchomienia flash-a nie wymaga javascript-u
- nie wymaga znacznika
Najpierw prosty kod html dla każdej przeglądarki uruchamiający flash-a:
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0" width="600" height="550"><param name="movie" value="test.swf?parametr1=abc&parametr2=xyz" /><param name="quality" value="high" /><param name="bgcolor" value="#ffffff" /><param name="flashvars" value="parametr1=abc&parametr2=xyz" /><!--[if !IE]> <--><object data="test.swf" width="600" height="550" type="application/x-shockwave-flash"><param name="quality" value="high" /><param name="bgcolor" value="#ffffff" /><param name="pluginurl" value="http://www.macromedia.com/go/getflashplayer" /><param name="bgcolor" value="#ffffff" /><param name="flashvars" value="parametr1=abc&parametr2=xyz" /> Alternatywna zawartość w przypadku braku flash-a. </object><!--> <![endif]--></object>
Standardowo parametry flashvars przekazujemy przez , ale przy poprawce Eolas dla Internet Explorera (IE):
// Fix activating flash, qt, etc. objects fixFlash = function() { theObjects = document.getElementsByTagName("object"); for (var i = 0; i < theObjects.length; i++) { theObjects[i].outerHTML = theObjects[i].outerHTML; } }
parametry flashvars są po prostu gubione
. Dlatego można przekazać parametry przez dodanie ich za adresem pliku, np. , albo zastosować inny sposób na poprawkę Eolas dla IE, która zachowa parametry flashvars :
// Fix activating flash, qt, etc. objects with save params sets in the<param>function ieupdate() { var strBrowser = navigator.userAgent.toLowerCase(); if(strBrowser.indexOf("msie") > -1 && strBrowser.indexOf("mac") < 0){ var theObjects = document.getElementsByTagName('object'); var theObjectsLen = theObjects.length; for (var i = 0; i < theObjectsLen; i++) { if(theObjects[i].outerHTML){ if(theObjects[i].data){ theObjects[i].removeAttribute('data'); } var theParams = theObjects[i].getElementsByTagName("param"); var theParamsLength = theParams.length; for (var j = 0; j < theParamsLength; j++) { if(theParams[j].name.toLowerCase() == 'flashvars'){ var theFlashVars = theParams[j].value; } } var theOuterHTML = theObjects[i].outerHTML; var re = /<param name="FlashVars" value="" />/ig; theOuterHTML = theOuterHTML.replace(re, "<param name='FlashVars' value='" + theFlashVars + "' />"); theObjects[i].outerHTML = theOuterHTML; } } } } function ieupdate_flush() { if (document.getElementsByTagName) { var objs = document.getElementsByTagName("object"); for (i=0; i<objs.length; i++) { objs[i].outerHTML = ""; } } }
Źródło kodu:flash problem in IE7 and IE6
+ drobne nasze poprawki.
Warto zajrzeć jeszcze
Komentarze
Możesz zostawić komentarz lub wysłać sygnał trackback ze swojej strony.
1 komentarz do “Poprawne osadzanie Flash w (X)HTML bez javascript-u i poprawka Eolas dla IE”
Zanim dodasz komentarz, to zapoznaj się z zasadami dotyczącymi komentarzy.
xhtml, flash i jego poprawne osadzanie | Ikeris Sp. z o.o., 11 lutego 2009, 02:18
[...] Aktualizacja: zajrzyj jeszcze do innego artykułu Poprawne osadzanie Flash w (X)HTML bez javascript-u i poprawka Eolas dla IE. [...]