FlashCheck 1.1
Скрипт предназначен для проверки версии флэша, поддерживаемой браузером и вставки вместо него картинки, если версия не подходит. Кроме того, версия с переключателем позволяет отключать/включать флэш на странице.
Скрипт в действии
Версия с переключателем в действии
История создания
Changelog + поддерживаемые браузеры
Как прикрутить:
В каждом месте страницы, где необходимо вывести флэш, вставляем такой код:
<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>
var ie=0
var f=0
var fz=0
var n=navigator
</script><script language="JScript">
if ((n.platform=='Win32')&&(n.userAgent.indexOf('Opera')== -1)){ie=1
for (var i=3;i<7;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>
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()
if (d.cookie.indexOf('fl=')<0){d.cookie='fl='+fl;d.cookie=e}
var dc=d.cookie
fl=parseInt(dc.charAt(dc.lastIndexOf('fl=')+3))
function fla(s)
{
d.cookie='fl='+s
d.cookie=e
location.reload()
}
</script><script language="JScript">
if ((n.platform=='Win32')&&(n.userAgent.indexOf('Opera')== -1)){ie=1
for (var i=3;i<7;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>
© Svarga
######################################################
CHANGELOG ;)
######################################################
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)
######################################################
Рэзультаты тестирования скрипта проверки
поддерживаемой браузером версии флэша.
все указанные браузеры, кроме Voyager,
виндозные)
######################################################
РАБОТАЕТ КАК НАДО В:
-- MSIE 3.x, 5.0-6.0 (в 4-м-- точно не знаю,-- как поставлю-- напишу)
-- Netscape 3.x-7.x
-- Mozilla 1.x
-- Opera 2.x-7.x
-- 1x Net Browser 1.0
-- Lynx 2.8.1 ;) пишет красивое слово "image" там, где надо ;)
-- AMSD Ariadna 1.3
-- QNX Voyager 2.03b
-- I-View 2.38
-- Arachne 1.7 for DOS :)
-- Amaya 7.2 by w3.org :)
ГЛЮЧИТ В:
1. Большинстве старых не-JavaScript браузеров:
- MSIE 1.x-2.x
- Netscape 1.x
- Mosaic (all)
- Chello 1.0 (1994 года выпуска)
и мн. др.
(отображает содержимое тэгов "
но при этом, если сам флэш/картинка вставляется в ячейку
таблицы равную ему/ей по размеру-- в Нетскейпах и Операх
будет ломаться таблица)
2. Netscape 2
такое описать невозможно-- бесподобно ;)
3. Hotjava 3.0
вообще ничего не выводится