FlashCheck 1.2

Скрипт предназначен для проверки версии Flash, поддерживаемой браузером и вставки вместо Flash-ролика картинки, если версия не поддерживается браузером. Кроме того, версия с переключателем позволяет отключать/включать Flash на странице.
Скрипт в действии
Версия с переключателем в действии
История создания
Changelog, поддерживаемые браузеры, глюки
Листинги в отдельном текстовом файле (при копировании кода в Netscape 4 с открытой html-страницы имеются проблемы с абзацами и пробелами.)

Как прикрутить:

В каждом месте страницы, где необходимо вывести флеш, вставляем такой код:
<script>insFl(5,'fl.swf','img.gif','http://',600,400)</script><noscript><a href="http://"><img src=img.gif border=0></a></noscript>
Значения, выделенные жирным шрифтом оранжевого цвета, наобходимо заменить:
5точная версия flash-ролика (обязательно без кавычек!);
'fl.swf' ссылка на flash-файл;
'img.gif' ссылка на альтернативную картику;
'http://' ссылка, которая выведется для картинки;
600 ширина картинки/ролика в пикселах;
400 высота картинки/ролика в пикселах.
В <head> документа вставляется такой код:
<script language="JavaScript1.2">window.onerror=function(){return true}</script>
<script>
var ie=0
var f=0
var fz=0
var n=navigator
</script><script language="JScript">
if (n.platform=='Win32' && !window.opera){ie=1
for (var i=3;i<10;i++){if (eval('new ActiveXObject("ShockwaveFlash.ShockwaveFlash.'+i+'")')){f=i}}}
</script><script>
if ((ie==0)&&(n.plugins))
{for (var i=0;i<n.plugins.length;i++){if (n.plugins[i].name.indexOf('Flash')> -1)
{fz=parseInt(n.plugins[i].description.charAt(16))
if (fz>f) f=fz; }}}

function insFl(v,fl,gif,lnk,w,h)
{var d=' width='+w+' height='+h
if (f>=v) {
document.write('<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"'+d+'><param name=movie value='+fl+'><embed src='+fl+' quality=high'+d+'></embed></object>')}
else {document.write('<a href='+lnk+'><img src='+gif+d+' border=0></a>')}}
</script>
Для варианта скрипта с переключателем в <head> вместо вышеприведённого кода вставляется такой код:
<script language="JavaScript1.2">window.onerror=function(){return true}</script>
<script>
var fl=1
var ie=0
var f=0
var fz=0
var n=navigator
var d=document
var t=new Date()
t.setTime(t.getTime()+11e10)
var e='; expires='+t.toGMTString()+'; path=/'
if (d.cookie.indexOf('fl=')<0){d.cookie='fl='+fl+e}
var dc=d.cookie
fl=parseInt(dc.charAt(dc.lastIndexOf('fl=')+3))

function fla(s)
{
d.cookie='fl='+s+e
location.reload()
}
</script><script language="JScript">
if (n.platform=='Win32' && !window.opera){ie=1
for (var i=3;i<10;i++){if (eval('new ActiveXObject("ShockwaveFlash.ShockwaveFlash.'+i+'")')){f=i}}}
</script><script>
if ((ie==0)&&(n.plugins))
{for (var i=0;i<n.plugins.length;i++){if (n.plugins[i].name.indexOf('Flash')> -1)
{fz=parseInt(n.plugins[i].description.charAt(16))
if (fz>f) f=fz; }}}

function insFl(v,fls,gif,lnk,w,h)
{var d=' width='+w+' height='+h
if ((fl!=0)&&(f>=v)) {
document.write('<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"'+d+'><param name=movie value='+fls+'><embed src='+fl+' quality=high'+d+'></embed></object>')}
else {document.write('<a href='+lnk+'><img src='+gif+d+' border=0></a>')}}
</script>
Кроме того, в варианте с переключателем необходимо включить в документ код самого переключателя:
<script>d.write('<b>переключить на:</b> <a href="javascript:fla(1)">flash</a> | <a href="javascript:fla(0)">html</a>')</script>

© 2002-2003 by Svarga (по найденным глюкам или необходимым изменениям пишите, бум разбираться :)
    ######################################################
                       CHANGELOG ;)
    ######################################################
v.1.3b
[-] Устранена проблема с MSIE 5+: при установленном Microsoft Script
Debugger’е выдавалось предупреждение об ошибке.
[~] Упрощена проверка win32 MSIE
[~] Исправлена неточность в версии с переключателем, вызывавшая глюк в
MSIE 4.0

v.1.2
[~] Исправления по определению версии Flash-плагина в MSIE (устранены
проблемы с 7-й версией).
[~] Исправлена работа с cookie.

v.1.1
[+] Для браузеров, поддерживающих Netscape-плагины (Opera, Mozilla,
Netscape...), добавлена проверка наиболее новой версии плагина-- теперь
при нескольких установленных плагинах скрипт правильно определяет
поддерживаемую версию флеша-- ранее учитывалась версия лишь одного из
плагинов, причем не обязательно самого нового (заметил эту ошибку
благодаря Opera 7.10b3, подцепившей по нескольким моим Нетскейпам и
Операм плагины трёх версий-- 3, 5, 6, причем скрипт почему-то определял
поддерживаемую версию флеша по плагину третьей версии).

[+] Добавлен вариант скрипта с cookie-переключателем для
отключения/включения на странице флеша.

[~] Незначительные исправления.


v.1.01
[~] Подправил очепятку-- вместо if ((ie==0)&&(document.plugins))
нужно писАть if ((ie==0)&&(n.plugins)), т.к. в первозданном
виде в 3.х браузерах выводило картинку даже если они
поддерживают флеш (заметил и исправил на QNX в тамошнем
Voyager 3).


v. 1.0
First stable version ;D)


    ######################################################
            Результаты тестирования скрипта проверки
               поддерживаемой браузером версии флеша
    ######################################################

РАБОТАЕТ КАК НАДО В:

-- MSIE 3.x, 5.0, 5.5, 6.0 win32
-- Netscape 3-7.x win32
-- Mozilla 1.x win32/Linux
-- Opera 2.x-7.x win32, Opera 7.0 Linux
-- 1x Net Browser 1.0 win32
-- Lynx 2.8.x ;) пишет красивое слово "image" там, где надо на win32
   и название картинки под Linux'ом ;)
-- Konqueror 3 Linux
-- Galeon 1.2.5 Linux
-- AMSD Ariadna 1.3 win32
-- QNX Voyager 2.03b
-- I-View 2.38 win32
-- Arachne 1.7 DOS :)
-- Amaya 7.2 win32 :)


ГЛЮЧИТ В (все нижеперечисленные браузеры под win32):

1. MSIE 4.0 — работает, однако из-за глюков браузера через раз :)
2. Большинстве старых не-JavaScript браузеров:
   - MSIE 1.x-2.x
   - Netscape 1.x
   - Mosaic (all)
   - Chello 1.0 (1994 года выпуска)
   и мн. др.
  (отображает содержимое тэгов "<script>"-- можно добавить тэги
   комментария:
  <script>
   <!--
   а тут скрипты
   //-->
   </script>
   но при этом, если сам ролик/картинка вставляется в ячейку
   таблицы равную ему/ей по размеру-- в Нетскейпах и Операх
   будет ломаться таблица)

3. Netscape 2
   такое описать невозможно-- бесподобно ;)

4. Hotjava 3.0
   вообще ничего не выводится

на главную