Модераторы: Sardar, Aliance

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Определение версии Flash, глючит... :-( 
:(
    Опции темы
GoodBoy
Дата 29.11.2005, 15:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Главный джедай
****


Профиль
Группа: Модератор
Сообщений: 3886
Регистрация: 8.1.2003
Где: КМВ

Репутация: 2
Всего: 83



Есть код:
Код

Md=document;
Mnv=navigator;
Mn=(Mnv.appName.substring(0,2)=="Mi")?0:1;

if(!Mn&&Mnv.userAgent.indexOf("Opera")<0&&Mnv.userAgent.indexOf("Mac")<0&&(Mnv.appVersion.indexOf("MSIE 5")>-1||Mnv.appVersion.indexOf("MSIE 6")>-1)){
    Md.body.style.behavior='url(#default#clientCaps)';
    alert(Md.body.getComponentVersion("{D27CDB6E-AE6D-11cf-96B8-444553540000}","ComponentID"));
}
if(Mnv.plugins.length){
    for(i=0;i<Mnv.plugins.length;i++){
        if(Mnv.plugins[i]['name'].toUpperCase().indexOf("SHOCKWAVE FLASH")>-1){alert(Mnv.plugins[i]['description']);break;}
    }
}


И всё было нормально до тех пор, пока я не поставил Flash-плеер версии 8.0.22.0... После этого версия флеша в ИЕ перестала опредиляться...


--------------------
Чем дальше в лес, тем толще партизаны...

Цитата(igorold @  1.5.2016,  17:40 Найти цитируемый пост)
Индейцы не обратили внимания на поток беженцев из Европы… Теперь они живут в резервациях. 
PM MAIL   Вверх
Sardar
Дата 30.11.2005, 01:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 78
Всего: 317



По идее компонент не стоит в списке:
http://msdn.microsoft.com/workshop/author/.../detectable.asp
Так что работать вообще никогда не должно...


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
GoodBoy
Дата 30.11.2005, 10:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Главный джедай
****


Профиль
Группа: Модератор
Сообщений: 3886
Регистрация: 8.1.2003
Где: КМВ

Репутация: 2
Всего: 83



Цитата(Sardar @ 30.11.2005, 01:02)
По идее компонент не стоит в списке:

В этом списке только Микрософтовские компоненты, а {D27CDB6E-AE6D-11cf-96B8-444553540000} - ID Флеша! И оно прекрасно работает!!! Но не с 8-й версией... :-((((

Кстати getComponentVersion будет работать с ЛЮБЫМ корректным для такой операции IDшником, а не только с теми, что в списке...


--------------------
Чем дальше в лес, тем толще партизаны...

Цитата(igorold @  1.5.2016,  17:40 Найти цитируемый пост)
Индейцы не обратили внимания на поток беженцев из Европы… Теперь они живут в резервациях. 
PM MAIL   Вверх
Ciber SLasH
Дата 30.11.2005, 20:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1813
Регистрация: 9.11.2004
Где: С.-Петербург

Репутация: 24
Всего: 67



Цитата(GoodBoy @ 30.11.2005, 10:36)
а {D27CDB6E-AE6D-11cf-96B8-444553540000} - ID Флеша! И оно прекрасно работает!!! Но не с 8-й версией... :-((((

А вот и не работает. У меня Flash 6.0 (дефолтный, который идёт вместе с WinXP SP2), но вот этот код:
Код
<HTML xmlns:IE>
<HEAD>
<STYLE>
@media all {
    IE\:clientCaps {behavior:url(#default#clientcaps)}
}
</STYLE>
</HEAD>

<BODY>
<IE:clientCaps ID="oClientCaps" />
<script type='text/javascript'>
alert(oClientCaps.isComponentInstalled("{D27CDB6E-AE6D-11CF-96B8-444553540000}", "ComponentID"));
</SCRIPT>
</BODY>

не работает, т.е. всегда "false".

А вот в Opera и FireFox работает следующий код (но не работает в IE):
Код
<script type='text/javascript'>
/*** Поиск плагина "Shockwave Flash" *(ver 1)**/
function findFlash_1() {
    for (var i = 0; i < navigator.plugins.length; i++)
        if ( (navigator.plugins[i].description).indexOf("Shockwave Flash") != -1 ) {
            return true;
            break;
        }
return false;
}

/*** Поиск плагина "Shockwave Flash" *(ver 2)**/
function findFlash_2() {
    for (var i = 0; i < navigator.mimeTypes.length; i++)
        if ( (navigator.mimeTypes[i].type).indexOf("application/x-shockwave-flash") != -1 &&
            navigator.mimeTypes[i].enabledPlugin != null ) {
            return true;
            break;
        }
return false;
}

/*** Поиск версии плагина "Shockwave Flash" ***/
/*    @param ver — если указан, то сравнивается текущая версия флэша со значением
    этого параметра и результат будет: true | false. Если этот параметр не
    указан, то результатом будет строка, содержащая версию флэша.
*/
function compareFlashVersion(ver) {
var Result = false;

    for (var i = 0; i < navigator.plugins.length; i++)
        if ( (navigator.plugins[i].description).indexOf("Shockwave Flash") != -1 ) {
            if (!ver)
                Result = (navigator.plugins[i].description).slice(15);
            else if ( (navigator.plugins[i].description).indexOf(ver) != -1 )
                Result = true;
            return Result;
            break;
        }

return Result;
}
document.write("<b>findFlash_1(): </b>" +findFlash_1()+ "<br>" +
    "<b>findFlash_2(): </b>" +findFlash_2()+ "<br>" +
    "<b>FlashVersion: </b>" + compareFlashVersion())
</script>

PM   Вверх
PARROT
Дата 30.11.2005, 20:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2339
Регистрация: 5.1.2005
Где: Спб-ЦарьГрад

Репутация: 1
Всего: 50



Код

<script LANGUAGE="Javascript">
var flashinstalled = 0;
MSDetect = "false";

if (navigator.mimeTypes && navigator.mimeTypes.length)
{
x = navigator.mimeTypes['application/x-shockwave-flash'];
if (x && x.enabledPlugin) flashinstalled = 2;
else flashinstalled = 1;
}
else
{
MSDetect = "true";
}
</SCRIPT>




--------------------
Безумный утешается прошедшим, слабоумный - будущим, умный - настоящим!
PM MAIL   Вверх
Ciber SLasH
Дата 30.11.2005, 20:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1813
Регистрация: 9.11.2004
Где: С.-Петербург

Репутация: 24
Всего: 67



2PARROT:
Это не работает, почему не проверяешь перед тем, как запостить?
PM   Вверх
Sardar
Дата 30.11.2005, 22:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 78
Всего: 317



Цитата(Ciber @ 30.11.2005, 19:13)
А вот в Opera и FireFox работает следующий код (но не работает в IE):

Потому что ИЕ navigator.mimeTypes не публикует, все остальные там исправно все плагины складывают.

В коде от PARROT ИЕ не проверяеться, просто считаеться, что если IE, то флеш установлен. В принципе он всегда установлен под ИЕ smile

Цитата(GoodBoy @ 30.11.2005, 09:36)
Кстати getComponentVersion будет работать с ЛЮБЫМ корректным для такой операции IDшником, а не только с теми, что в списке...

На самом деле нет, MS гарантирует правильную работу только для указанных в списке компонент. Вообще все зарегистрированные в системе компоненты перебрать нельзя, странно что флешь так ранее определялся.


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
Ciber SLasH
Дата 30.11.2005, 22:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1813
Регистрация: 9.11.2004
Где: С.-Петербург

Репутация: 24
Всего: 67



Цитата(Sardar @ 30.11.2005, 22:19)
В коде от PARROT ИЕ не проверяеться, просто считаеться, что если IE, то флеш установлен.

Тогда ясно... но это не факт, вдруг у кого-то flash.ocx не зарегистрирован в системе — тогда её код будет работать неверно, а именно MSDetect будет всегда true.
PM   Вверх
GoodBoy
Дата 1.12.2005, 11:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Главный джедай
****


Профиль
Группа: Модератор
Сообщений: 3886
Регистрация: 8.1.2003
Где: КМВ

Репутация: 2
Всего: 83



2 Ciber SLasH
Дефолтный - это не то! Он вообще определяться не хочет ни где.... :-))))))))

2 PARROT
Мне нужно не есть флеш или нет, а его версию определить!!!!!!!!


--------------------
Чем дальше в лес, тем толще партизаны...

Цитата(igorold @  1.5.2016,  17:40 Найти цитируемый пост)
Индейцы не обратили внимания на поток беженцев из Европы… Теперь они живут в резервациях. 
PM MAIL   Вверх
PARROT
Дата 1.12.2005, 11:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2339
Регистрация: 5.1.2005
Где: Спб-ЦарьГрад

Репутация: 1
Всего: 50



Код

<script LANGUAGE=JavaScript1.1>
<!--
var MM_contentVersion = НУЖНАЯ_ВЕРСИЯ_ФЛЕШКИ;
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[i])))
        continue;
        var MM_PluginVersion = words[i]; 
        }
    var MM_FlashCanPlay = MM_PluginVersion >= MM_contentVersion;
}
else if (navigator.userAgent && navigator.userAgent.indexOf("MSIE")>=0 
   && (navigator.appVersion.indexOf("Win") != -1)) {
    document.write('<SCR' + 'IPT LANGUAGE=VBScript\> \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('</SCR' + 'IPT\> \n');
}
if ( MM_FlashCanPlay ) {
    // ФЛЕШ УСТАНОВЛЕН
} else{
    // ФЛЕШ НЕ УСТАНОВЛЕН
}
//-->
</SCRIPT>

http://artem.philology.nsc.ru/0x0f0f0f/doc.../web/flash.html

Это сообщение отредактировал(а) PARROT - 1.12.2005, 11:37


--------------------
Безумный утешается прошедшим, слабоумный - будущим, умный - настоящим!
PM MAIL   Вверх
GoodBoy
Дата 1.12.2005, 11:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Главный джедай
****


Профиль
Группа: Модератор
Сообщений: 3886
Регистрация: 8.1.2003
Где: КМВ

Репутация: 2
Всего: 83



PARROT
Мне нужна ВЕРСИЯ флеша!!!!!!!!


--------------------
Чем дальше в лес, тем толще партизаны...

Цитата(igorold @  1.5.2016,  17:40 Найти цитируемый пост)
Индейцы не обратили внимания на поток беженцев из Европы… Теперь они живут в резервациях. 
PM MAIL   Вверх
Sardar
Дата 1.12.2005, 15:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 78
Всего: 317



GoodBoy в примере PARROT создаёться тестовый обьект флеша заданной версии, если исключений не было, значит флешь есть. По аналогии, можешь перебирать все smile

PARROT не обязательно пользоваться VBS для отлова ошибок, в JS есть try/catch smile


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
GoodBoy
Дата 1.12.2005, 16:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Главный джедай
****


Профиль
Группа: Модератор
Сообщений: 3886
Регистрация: 8.1.2003
Где: КМВ

Репутация: 2
Всего: 83



Sardar, мне не нужно знать есть флеш или нет! Мне нужно знаеть его версию!


--------------------
Чем дальше в лес, тем толще партизаны...

Цитата(igorold @  1.5.2016,  17:40 Найти цитируемый пост)
Индейцы не обратили внимания на поток беженцев из Европы… Теперь они живут в резервациях. 
PM MAIL   Вверх
Sardar
Дата 1.12.2005, 16:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 78
Всего: 317



Цитата(GoodBoy @ 1.12.2005, 15:09)
Sardar, мне не нужно знать есть флеш или нет! Мне нужно знаеть его версию!

Эмоции в сторону, подумай над решением:
Цитата(Sardar @ 1.12.2005, 14:49)
По аналогии, можешь перебирать все

Криво, но пока ничего лучшего не всплыло.


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
GoodBoy
Дата 1.12.2005, 16:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Главный джедай
****


Профиль
Группа: Модератор
Сообщений: 3886
Регистрация: 8.1.2003
Где: КМВ

Репутация: 2
Всего: 83



Блин, зашибись... В кои-то веки попросил помощи, привёл код, который практически всегда работает корректно, за небольшим исключением. И получил в ответ - "работать не должно было", "подумай над решением"... Спасибо, блин, помогли!!!


--------------------
Чем дальше в лес, тем толще партизаны...

Цитата(igorold @  1.5.2016,  17:40 Найти цитируемый пост)
Индейцы не обратили внимания на поток беженцев из Европы… Теперь они живут в резервациях. 
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0580 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.