Программирование > JavaScript & JScript

:: gif вместо флеша, при отключенном Flash плеере, через js

(1/2) > >>

alesa1981:
Есть тема, флеш баннер на сайте, желательно, что бы у людей с отключенным плеером вместо него подгружался 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:
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(\'  \');
document.write(\' \');
document.write(\' \');
document.write(\' \');
} else{
document.write(\'\');
}


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

alesa1981:
Идею секу, но хотелось бы чего нибудь полегче. В принципе в разумных пределах некорректное определение flash_player не страшно, главное что б 2 баннера вместе не вылезло и как можно меньше был код.

alesa1981:
navigator.plugins["Shockwave Flash"]
navigator.plugins

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

ice_nugget:
по идее должно работать в IE, опере и FF

Навигация

[0] Главная страница сообщений

[#] Следующая страница

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 
Перейти к полной версии