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
  • załatwia problem aktywacji flash-a po poprawce Eolas dla IE za pomocą javascript-u

Najpierw prosty kod html dla każdej przeglądarki uruchamiający flash-a:

  1. <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&amp;parametr2=xyz" /><param name="quality" value="high" /><param name="bgcolor" value="#ffffff" /><param name="flashvars" value="parametr1=abc&amp;parametr2=xyz" /><!--[if !IE]>
  2. <--><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&amp;parametr2=xyz" />
  3. Alternatywna zawartość w przypadku braku flash-a.
  4. </object><!-->
  5. <![endif]--></object>

Standardowo parametry flashvars przekazujemy przez , ale przy poprawce Eolas dla Internet Explorera (IE):

  1. // Fix activating flash, qt, etc. objects
  2. fixFlash = function() {
  3. theObjects = document.getElementsByTagName("object");
  4. for (var i = 0; i < theObjects.length; i++) {
  5. theObjects[i].outerHTML = theObjects[i].outerHTML;
  6. }
  7. }

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 :

  1. // Fix activating flash, qt, etc. objects with save params sets in the<param>function ieupdate()
  2. {
  3. var strBrowser = navigator.userAgent.toLowerCase();
  4. if(strBrowser.indexOf("msie") > -1 && strBrowser.indexOf("mac") < 0){
  5. var theObjects = document.getElementsByTagName('object');
  6. var theObjectsLen = theObjects.length;
  7. for (var i = 0; i < theObjectsLen; i++) {
  8. if(theObjects[i].outerHTML){
  9. if(theObjects[i].data){
  10. theObjects[i].removeAttribute('data');
  11. }
  12. var theParams = theObjects[i].getElementsByTagName("param");
  13. var theParamsLength = theParams.length;
  14. for (var j = 0; j < theParamsLength; j++) {
  15. if(theParams[j].name.toLowerCase() == 'flashvars'){
  16. var theFlashVars = theParams[j].value;
  17. }
  18. }
  19. var theOuterHTML = theObjects[i].outerHTML;
  20. var re = /<param name="FlashVars" value="" />/ig;
  21. theOuterHTML = theOuterHTML.replace(re, "<param name='FlashVars' value='" + theFlashVars + "' />");
  22. theObjects[i].outerHTML = theOuterHTML;
  23. }
  24. }
  25. }
  26. }
  27. function ieupdate_flush()
  28. {
  29. if (document.getElementsByTagName)
  30. {
  31. var objs = document.getElementsByTagName("object");
  32. for (i=0; i<objs.length; i++) {
  33. objs[i].outerHTML = "";
  34. }
  35. }
  36. }

Źródło kodu:flash problem in IE7 and IE6 + drobne nasze poprawki.

Warto zajrzeć jeszcze

Nie podoba mi sięPodoba mi się (Nie ma jeszcze głosów, ale możesz być pierwszy)

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”

  1. 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. [...]

Zanim dodasz komentarz, to zapoznaj się z zasadami dotyczącymi komentarzy.

Dodaj komentarz
Zaznacz, jeśli potwierdzasz wysłanie komentarza

Polecamy

Znajdź na stronie

Pomoc do strony

Bądź na bieżąco

do góry