![]() |
|
||||||||||
|
|||||
|
Регистрация: Aug 2001
Адрес: Кузбасс (Кемеровская обл.)
Сообщений: 60
|
Скажите пожалуйста, как определить наличие на машине плагина вообще, а в частности 5-го с помощью Action.
Сразу спасибо.
__________________
Для того, чтобы сделать что-то невозможное, нужно просто не знать, что это невозможно сделать. |
|
|||||
|
[+4 19.05.08]
|
такой пойдет?
var haveflash = false;
var flash2Installed = false; // boolean. true if flash 2 is installed
var flash3Installed = false; // boolean. true if flash 3 is installed
var flash4Installed = false; // boolean. true if flash 4 is installed
var flash5Installed = false; // boolean. true if flash 5 is installed
var maxVersion = 5; // highest version we can actually detect
var actualVersion = 0; // version the user really has
var hasRightVersion = false; // boolean. true if it's safe to embed the flash movie in the page
// write vbscript detection if we're on ie win
var isIE = (navigator.appVersion.indexOf("MSIE") != -1) ? true : false; // true if we're on ie
var isMac = (navigator.appVersion.indexOf("Mac") != -1) ? true : false; // true if we're on mac
if(isIE && !isMac) // don't write vbscript tags on anything but ie win
{
document.write('<SCRIPT LANGUAGE=VBScript\> \n');
document.write('on error resume next \n');
document.write('flash2Installed = (IsObject(CreateObject("ShockwaveFlash.ShockwaveFlash.2"))) \n');
document.write('flash3Installed = (IsObject(CreateObject("ShockwaveFlash.ShockwaveFlash.3"))) \n');
document.write('flash4Installed = (IsObject(CreateObject("ShockwaveFlash.ShockwaveFlash.4"))) \n');
document.write('flash5Installed = (IsObject(CreateObject("ShockwaveFlash.ShockwaveFlash.5"))) \n');
document.write('</SCR' + 'IPT\> \n'); // break up end tag so it doesn't end our script
}
if (navigator.plugins) // does navigator.plugins exist?
{
if (navigator.plugins["Shockwave Flash 2.0"] // is Flash 2 installed?
|| navigator.plugins["Shockwave Flash"]) // no? then is flash 3+ installed?
{
var isVersion2 = navigator.plugins["Shockwave Flash 2.0"] ? " 2.0" : ""; // flash 2 ref.
var flashDescription = navigator.plugins["Shockwave Flash" + isVersion2].description; // plugin description
var flashVersion = parseInt(flashDescription.charAt(flashDescription.indexOf(".") - 1)); // plugin version
if (flashVersion == 2) flash2Installed = true; // set appropriate version flag
if (flashVersion == 3) flash3Installed = true;
if (flashVersion == 4) flash4Installed = true;
if (flashVersion == 5) flash5Installed = true;
}
}
for (var i = 2; i <= maxVersion; i++) // loop through all versions we're checking
{
if (eval("flash" + i + "Installed") == true) actualVersion = i; // set actualVersion to highest detected version
}
if (actualVersion>4) { haveflash = true; } else { haveflash = false; }
надеюсь тебе подойдет
__________________
Жить хорошо, когда вокруг столько интересного.... |
|
|||||
|
Регистрация: Aug 2001
Адрес: Кузбасс (Кемеровская обл.)
Сообщений: 60
|
Спасибо большое, очень полный пример. Но если те не против, я хотел бы уточнить.
Почему откидываются клиенты с машинами "МАК": var isIE = (navigator.appVersion.indexOf("MSIE") != -1) ? true : false; // true if we're on ie var isMac = (navigator.appVersion.indexOf("Mac") != -1) ? true : false; // true if we're on mac if(isIE && !isMac) // don't write vbscript tags on anything but ie win { Потом, здесь нет ни слова о Нэтскейпе. Могет быть можно для полноты еще добавить: var plugin = (navigator.mimeTypes && navigator.mimeTypes["application/x-shockwave-flash"]) ? navigator.mimeTypes["application/x-shockwave-flash"].enabledPlugin : 0; if (plugin && parseInt(plugin.description.substring(plugin.description.indexOf(".")-1)) >=5) { window.location = "..."; } Еще объясни пожалуйста (я не силен в яве) почему: document.write('</SCR' + 'IPT\> \n'); а не: document.write('</SCRIPT\> \n'); и что это означает? А так все класно ___________________________________________________ И все же я немного не это имел ввиду: Я думал поставить задержку и обратиться в мувику swf, который на ActionScript определит плугин, а если машина не понимает swf, то после задержки перебросит на соответствующий html. Но это все не принципиально, хотя такой вариант я думаю есть. ![]()
__________________
Для того, чтобы сделать что-то невозможное, нужно просто не знать, что это невозможно сделать. |
|
|||||
|
[+4 19.05.08]
|
Цитата:
по поводу нетскейпа ничего не имею против сам его любил до поры до времени сейчас перешел на Mazilla очень кайфная штука ![]() и вопрос от меня, как ты можешь проверить флЭшем наличие плагина, если флЭш без плагина не работает? ![]() или я не понимаю? если найдешь способ скинь на мыло плиз буду признателен ![]()
__________________
Жить хорошо, когда вокруг столько интересного.... |
|
|||||
|
[+4 19.05.08]
|
Цитата:
по поводу нетскейпа ничего не имею против сам его любил до поры до времени сейчас перешел на Mazilla очень кайфная штука ![]() и вопрос от меня, как ты можешь проверить флЭшем наличие плагина, если флЭш без плагина не работает? ![]() или я не понимаю? если найдешь способ скинь на мыло плиз буду признателен ![]()
__________________
Жить хорошо, когда вокруг столько интересного.... |
![]() |
Часовой пояс GMT +4, время: 11:44. |
|
|
« Предыдущая тема | Следующая тема » |
|
|