0

我正在开发一款在 Facebook 上运行的 Flash 播放器游戏。我正在尝试检测客户端浏览器是否使用 swfobject.js (version2.2) 安装了 Flash 播放器插件。我的游戏在 facebook 上的 iframe 内运行。这是我的代码片段:

<iframe src='....'>

//content inside the iframe
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/swfobject/2.2/swfobject.js"></script>
<script type="text/javascript">
var playerVersion = swfobject.getFlashPlayerVersion();
if(playerVersion.major >= 14) {
   swfobject.embedSWF(......);   //code for loading swf object
}else{
   document.write("<a href='https://www.adobe.com/go/getflashplayer' alt='To view this page ensure that Adobe Flash Player version 14 is installed. Get Adobe Flash player.' id='installFlashContent'></a>");
}
</script>
.....
</iframe>

swfobject.getFlashPlayerVersion () - 这将返回 0,即使我的 Firefox 浏览器上安装了 Flash 播放器插件。

如果直接打开我的 iframe(右键单击 > This Frame > Open Frame in New Tab),则 Flash 播放器被正确检测为:

{ 
  major : 28
  minor : 0
  release : 0
}

深入研究代码, 当我在 Facebook 上运行代码时,我发现 swfobject.js中的navigator.plugins.length返回 0。

对此有什么想法吗?先感谢您。

4

1 回答 1

0

在尝试了很多事情之后,我终于弄清楚了,这个问题是由于 Firefox 浏览器阻止了几个网站在 iframe(3rd 方插件)中加载 flash 内容。我们正在从cloudfront.net加载 flash 内容,该内容列在 Firefox 的阻止列表中。

以下是 Firefox 阻止的网站的完整列表: Firefox 插件阻止列表

可以在此处找到有关此的更多信息:按域阻止

于 2018-01-15T05:36:28.887 回答