Автор Тема: :: gif вместо флеша, при отключенном Flash плеере, через js  (Прочитано 4873 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн alesa1981

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 4
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Есть тема, флеш баннер на сайте, желательно, что бы у людей с отключенным плеером вместо него подгружался gif баннер.
Вариант с изменением исходников флеша, сейчас не рассматривается, интересует JS.

Проблема в том, что сайт имеет очень много посетителей и без того изрядно тормозит. Баннер висит, по всем страницам сверху, вставлять громоздкие js функции, в шапку всего сайта, очень не хотелось бы.

Решение вижу примерно так


<div id="flash" style="display:none">
тут флеш
</div>
<
div id="gif" style="display:none">
тут картинка
</div>
<
script>
if(<
проверка включенности флеша>)
{
 
document.all["flash"].style.display="block";
}else{
 
document.all["gif"].style.display="block";
}
<
noscript>
тут картинка
</noscript>


Вопросы такие интересует как составить само выражение для проверки
if(<проверка включенности флеша>)

Корректную ли вообще я штуку придумал, более всего не хотелось бы двойного отображения баннеров. Может ли быть что style="display:none"> не подействует и отобразятся оба баннера. Но применять document.write для довольно объемного HTML флешки тоже бы не хотелось, из соображений быстродействия.

Оффлайн ice_nugget

  • Samurai
  • Ветеран
  • *****
  • Сообщений: 736
  • +0/-0
  • 2
    • Просмотр профиля
var minPluginVersion = 5;
var fileName = "../flash/bla bla bla";
var WIDTH = 470;
var HEIGHT = 108;
var SWLIVECONNECT = false;
var PLAY = true;
var LOOP = true;
var QUALITY = "high";
var WMODE = "transparent";
var SCALE = "showall";
var ALIGN = "";
var SALIGN = "";
var BASE = "";
var MENU = false;

var SRC = fileName + ".swf";
var altSRC = fileName + ".gif";
var NAME = fileName;
var ID = fileName;
var MM_contentVersion = minPluginVersion;
var plugin = (navigator.mimeTypes && navigator.mimeTypes["application/x-shockwave-flash"]) ? navigator.mimeTypes["application/x-shockwave-flash"].enabledPlugin : 0;
if ( plugin ) {
var words = navigator.plugins["Shockwave Flash"].description.split(" ");
    for (var i = 0; i < words.length; ++i)
    {
if (isNaN(parseInt(words)))
continue;
var MM_PluginVersion = words;
    }
var MM_FlashCanPlay = MM_PluginVersion >= MM_contentVersion;
}
else if (navigator.userAgent && navigator.userAgent.indexOf("MSIE")>=0
   && (navigator.appVersion.indexOf("Win") != -1)) {
document.write(\' \\n\'); //FS hide this from IE4.5 Mac by splitting the tag
document.write(\'on error resume next \\n\');
document.write(\'MM_FlashCanPlay = ( IsObject(CreateObject("ShockwaveFlash.ShockwaveFlash." & MM_contentVersion)))\\n\');
document.write(\'
\\n\');
}
if ( MM_FlashCanPlay ) {
document.write(\'document.write(\'  codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=\'+minPluginVersion+\',0,0,0" \');
document.write(\' ID="\'+ID+\'" WIDTH="\'+WIDTH+\'" HEIGHT="\'+HEIGHT+\'" ALIGN="\'+ALIGN+\'">\');
document.write(\'  \');
document.write(\' document.write(\' swLiveConnect=\'+SWLIVECONNECT+\' WIDTH="\'+WIDTH+\'" HEIGHT="\'+HEIGHT+\'" NAME="\'+NAME+\'" ALIGN="\'+ALIGN+\'"\');
document.write(\' TYPE="application/x-shockwave-flash" PLUGINSPAGE="http://www.macromedia.com/go/getflashplayer">\');
document.write(\' \');
document.write(\'
\');
} else{
document.write(\'http://www.macromedia.com/go/getflash" target="_blank">\');
}


короче может тебе это поможет :)
Union Haddiema Maghqudin

Оффлайн alesa1981

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 4
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Идею секу, но хотелось бы чего нибудь полегче. В принципе в разумных пределах некорректное определение flash_player не страшно, главное что б 2 баннера вместе не вылезло и как можно меньше был код.

Оффлайн alesa1981

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 4
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
navigator.plugins["Shockwave Flash"]
navigator.plugins

Почему то определенно в опере и не определенно в IE.

Оффлайн ice_nugget

  • Samurai
  • Ветеран
  • *****
  • Сообщений: 736
  • +0/-0
  • 2
    • Просмотр профиля
по идее должно работать в IE, опере и FF
Union Haddiema Maghqudin

Оффлайн alesa1981

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 4
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
IE под winxp sp2 напрямую ставлю
document.write(navigator.plugins["Shockwave Flash"]);

пишет не определенно
в условие false
в опере [object Plugin]
то есть true и там и там флешка видна

 

Sitemap 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