Как проверить наличие конкретной версии флеш-плеера, когда в системе много версий с одинаковой «Major Version» (в javascript)? - PullRequest
2 голосов
/ 10 февраля 2011

Я должен проверить, установлена ​​ли конкретная версия флеш-плеера 10.2.161.23 на компьютере клиента или нет из моего кода javascript.В клиентской системе есть много других версий с такой же «Основной версией», как 10.1.102.64 и т. Д. Я попробовал следующий фрагмент кода

for(var i = 10; i > 0; i--)  
        {    
            try
            {     
                flash = new ActiveXObject("ShockwaveFlash.ShockwaveFlash."+String(i));    
            }
            catch(e)
            {
              alert("in ctach");
            }

             version = flash.GetVariable("$version");  
                 alert(version);

        }

У клиента есть 10.1.102.64 и 10.2.161.23 в его системе и мой код вышераспознает только 10.1.102.64, но не распознает другую версию с тем же «Major version no:».

Могу ли я использовать новый ActiveXObject ("MacromediaFlashPaper.MacromediaFlashPaper"); вместо Shockwaveflash.shockwaveflash .Имеет ли это какое-либо влияние?Версия флеш-плеера, которую я хочу обнаружить, является 64-битной версией.

Может кто-нибудь любезно сообщить мне причину и исправить это, пожалуйста.Заранее спасибо.

Ответы [ 2 ]

1 голос
/ 10 февраля 2011

Вы хотели бы взглянуть на http://code.google.com/p/swfobject/.Это активно используемая библиотека JavaScript для флеш-встраивания.Вам не придется иметь дело с кросс-браузерными проблемами.Используя SWFObject, определение версии флэш-памяти так же просто, как:

function flashdetect(){
  var version = deconcept.SWFObjectUtil.getPlayerVersion();
  var major_version = version["major"];
  var revision = version["rev"];
}
0 голосов
/ 10 февраля 2011

Попробуйте следующий скрипт

function getFlashVersion(){
  // ie
  try {
    try {
      // avoid fp6 minor version lookup issues
      // see: http://blog.deconcept.com/2006/01/11/getvariable-setvariable-crash-internet-explorer-flash-6/
      var axo = new ActiveXObject('ShockwaveFlash.ShockwaveFlash.6');
      try { axo.AllowScriptAccess = 'always'; }
      catch(e) { return '6,0,0'; }
    } catch(e) {}
    return new ActiveXObject('ShockwaveFlash.ShockwaveFlash').GetVariable('$version').replace(/\D+/g, ',').match(/^,?(.+),?$/)[1];
  // other browsers
  } catch(e) {
    try {
      if(navigator.mimeTypes["application/x-shockwave-flash"].enabledPlugin){
        return (navigator.plugins["Shockwave Flash 2.0"] || navigator.plugins["Shockwave Flash"]).description.replace(/\D+/g, ",").match(/^,?(.+),?$/)[1];
      }
    } catch(e) {}
  }
  return '0,0,0';
}

var version = getFlashVersion().split(',').shift();
if(version < 10){
  alert("Lower than 10");
}else{
  alert("10 or higher");
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...