当系统有多个具有相同“主要版本”的版本(在 javascript 中)时,如何检查特定版本的 Flash 播放器是否存在?

发布于 2024-10-16 17:53:47 字数 868 浏览 4 评论 0原文

我必须从我的 JavaScript 代码检查客户端计算机上是否安装了特定版本的 Flash Player 10.2.161.23。客户端的系统有许多其他版本具有相同的“主要版本”,例如 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,但不能识别具有相同“主要版本号:”的其他版本。

我可以使用新的吗 ActiveXObject("MacromediaFlashPaper.MacromediaFlashPaper"); 而不是 Shockwaveflash.shockwaveflash。做 这有什么影响吗?闪存播放器 我想要检测的版本是 64 位 版本。

谁能告诉我原因并解决这个问题。 提前致谢。

I have to check if a specific version of flash player 10.2.161.23 is installed on the client's machine or not from my javascript code. Client's system has many other versions with same "Major version" like 10.1.102.64 etc.. I tried the following code snippet

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);

        }

Client has 10.1.102.64 & 10.2.161.23 on his system and my above code is recognizing only, 10.1.102.64 but not recognizing the other version with the same "Major version no:".

Can I use new
ActiveXObject("MacromediaFlashPaper.MacromediaFlashPaper");

instead of
Shockwaveflash.shockwaveflash. Does
this have any impact? The flash player
version I want to detect is a 64 bit
version.

Can anyone kindly let me know the reason and fix for this please.
Thanks In advance.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

小草泠泠 2024-10-23 17:53:47

您可能需要查看http://code.google.com/p/swfobject/。
它是一个积极使用的用于 Flash 嵌入的 JavaScript 库。你会
不必处理跨浏览器问题。
使用 SWFObject,flash 版本检测非常简单:

function flashdetect(){
  var version = deconcept.SWFObjectUtil.getPlayerVersion();
  var major_version = version["major"];
  var revision = version["rev"];
}

You would want to have a look at http://code.google.com/p/swfobject/ .
It is an actively used javascript library for flash embedding. You would
not have to deal with cross browser issues.
Using SWFObject,flash version detection is as simple as :

function flashdetect(){
  var version = deconcept.SWFObjectUtil.getPlayerVersion();
  var major_version = version["major"];
  var revision = version["rev"];
}
冰之心 2024-10-23 17:53:47

尝试以下脚本

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");
}

Try following script

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");
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文