Скрипт работает только в IE. Почему?

#1 9 октября 2012 в 22:38
Подскажите кто нибудь, почему этот скрипт работает только в ИЕ??? Целый вечер бьюсь над ним...

  1.  
  2. <script type="text/javascript">
  3.  
  4. <!--
  5. var UseFlash = 0;
  6. if (navigator.mimeTypes && navigator.mimeTypes["application/x-shockwave-flash"] ) {
  7. var plugin = navigator.mimeTypes["application/x-shockwave-flash"].enabledPlugin;
  8. if (plugin && parseInt(plugin.description.substring(plugin.description.indexOf(".")-1))>=4)
  9. UseFlash = 1;
  10. } else if (navigator.appName && navigator.appName.indexOf("Microsoft") != -1 &&
  11. navigator.userAgent.indexOf("Windows") != -1 && navigator.userAgent.indexOf("Windows 3.1") == -1) {
  12. UseFlash = 1;
  13. }
  14. if ( UseFlash ) {
  15. document.write('<OBJECT classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"');
  16. document.write(' codebase="http://active.macromedia.com/flash2/cabs/swflash.cab#version=4,0,0,0"');
  17. document.write(' ID=flashContent WIDTH=700 HEIGHT=260 ALIGN=middle>');
  18. document.write('<PARAM NAME=movie VALUE="http://zachem.arkweb.ru/templates/myzachem.com/flash/city.swf"><PARAM NAME=quality VALUE=high><PARAM NAME=bgcolor VALUE=#fff5cd><PARAM NAME=play VALUE=true><PARAM NAME=loop VALUE=true><PARAM NAME=wmode VALUE=transparent><PARAM NAME=scale VALUE=showall><PARAM NAME=menu VALUE=true><PARAM NAME=devicefont VALUE=false><PARAM NAME=salign VALUE=><PARAM NAME=allowScriptAccess VALUE=sameDomain> ');
  19. document.write('<EMBED src="http://zachem.arkweb.ru/templates/myzachem.com/flash/city.swf" quality=high bgcolor=#fff5cd ');
  20. document.write(' swLiveConnect=FALSE WIDTH=700 HEIGHT=260');
  21. document.write(' TYPE="application/x-shockwave-flash" PLUGINSPAGE="http://www.macromedia.com/shockwave/static/download/index.cgi?P1_Prod_Version=ShockwaveFlash">');
  22. document.write('</EMBED>');
  23. document.write('</OBJECT>');
  24. } else if (!(navigator.appName && navigator.appName.indexOf("Netscape")>=0 && navigator.appVersion.indexOf("2.")>=0)) {
  25. document.write('<IMG SRC="http://zachem.arkweb.ru/header.png" WIDTH=700 HEIGHT=260 BORDER=0>');
  26. }
  27. //-->
  28. </script>
  29.  
  30. <noembed><img src="http://zachem.arkweb.ru/header.png" width="700" height="260" border="0"></noembed>
  31. <noscript><div><img src="http://zachem.arkweb.ru/header.png" width="700" height="260" border="0"></div></noscript>
  32.  
  33.  
#2 9 октября 2012 в 22:40
Да, и почему кстати в ИЕ если отключить флеш, показывается рамка изображения с крестом (не загружает картинку), в опере и мазиле показывается статичная картинка сразу, а не флеш. В хроме вообще показывается пустое место.

Помогите разобраться
#3 10 октября 2012 в 00:36
Помощь со скриптом уже не нужна. Разобрался как сделать. Работает везде.
Остался один вопрос, как в опере вместо заглушки (что не установлен плагин флеша) вывести альтернативный контент?
#4 10 октября 2012 в 00:42


Помощь со скриптом уже не нужна. Разобрался как сделать. Работает везде.

Rossoman

думаю, чтобы тема не была пустой, стоит выложить решение? Вдруг кому еще пригодится!
#5 10 октября 2012 в 02:11
Задача была следующей. В зависимости от того, поддерживает ли устройство или браузер Flash, выводим либо блок с анимированным флеш меню, либо (если нет поддержки флеша) выводим блок с обычным меню и картинкой. Впринципе результата кроссбраузерного добился. Работает во всех браузерах, в том числе на андроиде. Решение следующее:

Обязательно подключаем swfobject.js (скачать можно с интернета)
  1. <script src="/js/swfobject.js"></script>
Этот скрипт вставляем перед тегом </head>
  1. <script type="text/javascript">
  2. if (swfobject.hasFlashPlayerVersion("9.0.0")) {<!-- указываем версию flash, на которой сделан ролик -->
  3. var fn = function() {
  4. var att = { data:"http://mysite.com/templates/myzachem.com/flash/city.swf", width:"700", height:"260" };<!-- указываем путь и имя flash-объекта, а так же его размеры -->
  5. var par = {
  6. menu:"true", <!-- для пользователя даем возможность управлять анимацией -->
  7. quality:"high", <!-- высокое качество -->
  8. wmode:"transparent" <!-- мне нужна была прозрачность -->
  9. };
  10. var id = "no-flash";<!-- id блока, куда будет вставлен flash, в противном случае выводиться содержимое блока -->
  11. var myObject = swfobject.createSWF(att, par, id);
  12. };
  13. swfobject.addDomLoadEvent(fn);
  14. }
  15. </script>
Ну и соответственно в нужном месте шаблона вставляем
  1.  
  2. <div id="no-flash">
  3. <p>Альтернативный контент</p>
  4. </div>
Естественно вместо <p>Альтернативный контент</p> можно вывести все что угодно
Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.