如果启用了闪存,则显示一个Drupal块或另一个

时间:2014-10-11 10:59:05

标签: javascript html5 flash drupal-7 drupal-views

在我的Drupal 7网站中,我有一个带有两个块显示的视图。两者之间的唯一区别是一个过滤标准-URL Aias-:一个块显示内容" / html5"在别名和其他节目" / flash" url别名内容

这些块必须仅在某些页面上显示。该逻辑由基于URL的Context模块控制。这样,如果URL类似于" perm / type / man / *"

,将显示该块。

在此URL处,我需要显示一个或另一个块,具体取决于是否在设备级别启用了闪存内容:如果设备支持闪存(如PC),则必须显示闪存内容。如果设备不支持flash(移动),则会显示html5内容。

我发现这个js代码可以检测设备上是否启用了闪存

var hasFlash = false;
try {
  var fo = new ActiveXObject('ShockwaveFlash.ShockwaveFlash');
  if (fo) {
    hasFlash = true;
  }
} catch (e) {
  if (navigator.mimeTypes
        && navigator.mimeTypes['application/x-shockwave-flash'] != undefined
        && navigator.mimeTypes['application/x-shockwave-flash'].enabledPlugin) {
    hasFlash = true;
  }
}

但我不知道如何处理它,也不知道我必须包含代码。

你能帮助我吗?

1 个答案:

答案 0 :(得分:0)

您可以尝试将上述代码添加到文件中或添加为drupal_add_js的内联脚本,并按以下步骤继续:

  • 在初始隐藏的同一页面上加载两个块,并在js中显示符合您条件的块。
  • 或者使用ajax加载正确的块内容,并根据您所需的标准将其转储到DOM中。