使用js / jquery检测flash播放器的现代或非弃用方式?

时间:2017-03-10 21:56:47

标签: javascript jquery browser flash

首先,抱歉在这里重新提出这个问题。 我已经尝试了两天如何使用javascript / jquery来完成这项工作,我想我已经阅读了所有堆栈溢出和其他博客相关的帖子,所以请不要将其标记为重复,因为我无法使用从2012年开始的2017年的过时剧本。

我有一个页面重定向到第三方电子学习平台,其中一些内容需要闪存才能工作。许多用户不关心他们的机器上安装了哪些软件(多么新的,呵呵)所以我需要检测它并显示典型消息“请安装/更新flash player点击这里”,但我找不到“现代“脚本/方式,在任何地方,如果可能的话,简化,

我尝试过的所有脚本都已弃用,或在所有浏览器中都返回false,即使我安装了最新版本的Flash并处于活动状态。

Anny帮助将不胜感激(除了现在不起作用的旧帖子或脚本的链接,显然)。

非常感谢!

2 个答案:

答案 0 :(得分:5)

有一种简单的方法可以检查Flash,因为所有已安装和已启用的插件都会列在navigator.plugins;

请注意,如果安装了插件,但未启用,则不会在navigator.plugins阵列中检测到该插件。有 NO 方法可以使用Javascript检测到这种情况(此Question确认相同)。

话虽如此,请使用以下函数isFlashEnabled();来检测Flash:

<html>

<script>

if(isFlashEnabled()) 
{ document.write('Flash is installed (but may need to be enabled)'); } 
else { document.write('Flash is either not installed or disabled'); }

function isFlashEnabled() 
{
    var flash = navigator.plugins.namedItem('Shockwave Flash');
    if (!flash) { return 0; } 
    else { return 1; }
}

</script>

<body> <embed src="https://www.w3schools.com/tags/helloworld.swf"> </body>

</html>

答案 1 :(得分:0)

您可以获得一个包含浏览器所有已安装插件的数组:

var plugins = navigator.plugins;

然后你可以检查数组是否包含flash插件。

来自https://developer.mozilla.org/de/docs/Web/API/NavigatorPlugins/plugins

function getFlashVersion() {
   var flash = navigator.plugins.namedItem('Shockwave Flash');
   if (typeof flash != 'object') {
      // flash is not present
      return undefined;
   }
   if(flash.version){ 
     return flash.version;
   } else {
     //No version property (e.g. in Chrome)
     return flash.description.replace(/Shockwave Flash /,"");
  }
}