首先,抱歉在这里重新提出这个问题。 我已经尝试了两天如何使用javascript / jquery来完成这项工作,我想我已经阅读了所有堆栈溢出和其他博客相关的帖子,所以请不要将其标记为重复,因为我无法使用从2012年开始的2017年的过时剧本。
我有一个页面重定向到第三方电子学习平台,其中一些内容需要闪存才能工作。许多用户不关心他们的机器上安装了哪些软件(多么新的,呵呵)所以我需要检测它并显示典型消息“请安装/更新flash player点击这里”,但我找不到“现代“脚本/方式,在任何地方,如果可能的话,简化,
我尝试过的所有脚本都已弃用,或在所有浏览器中都返回false,即使我安装了最新版本的Flash并处于活动状态。
Anny帮助将不胜感激(除了现在不起作用的旧帖子或脚本的链接,显然)。
非常感谢!
答案 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 /,"");
}
}