88

javascript/jQuery/etc を使用して Flash がインストールされているかどうかを検出し、インストールされていない場合は、Flash をインストールする必要があることをユーザーに通知する情報を含む div を表示するにはどうすればよいですか?

4

8 に答える 8

159

十分でない場合swfobject、またはもう少しオーダーメイドのものを作成する必要がある場合は、これを試してください。

var hasFlash = false;
try {
    hasFlash = Boolean(new ActiveXObject('ShockwaveFlash.ShockwaveFlash'));
} catch(exception) {
    hasFlash = ('undefined' != typeof navigator.mimeTypes['application/x-shockwave-flash']);
}

7と8で動作します。

于 2010-07-26T15:28:20.880 に答える
104

フラッシュプラグインが無効になっているだけでインストールされている場合、@ Drewidの答えは私のFirefox 25では機能しませんでした。

その回答での@invertedSpearのコメントは、Firefoxでは機能しましたが、どのIEバージョンでも機能しませんでした。

したがって、両方のコードを組み合わせて、これを取得しました。Google Chrome 31、Firefox 25、IE 8-10 でテスト済み。DrewidとinvertedSpearに感謝します:)

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;
  }
}
于 2013-11-20T12:03:30.757 に答える
26

swf オブジェクトを使用します。インストールされている場合は、div をフラッシュに置き換えます。参照: http://code.google.com/p/swfobject/

于 2009-06-15T20:40:12.677 に答える
18

navigator.mimeTypes を使用できます。

if (navigator.mimeTypes ["application/x-shockwave-flash"] == undefined)
    $("#someDiv").show ();
于 2009-06-15T20:44:19.597 に答える
10

jqplugin:http ://code.google.com/p/jqplugin/

$.browser.flash == true
于 2012-06-27T21:42:13.167 に答える
4

また、使用できるはずです..

swfobject.getFlashPlayerVersion().major === 0

swfobject-Pluginを使用します。

于 2014-04-05T20:39:47.720 に答える
2

私は、もともと justpassinby によって提案された Adob​​e の検出キットを使用しました。バージョン番号を検出し、それを「必要なバージョン」と比較するため、彼らのシステムは優れています

悪い点の 1 つは、検出されたフラッシュのバージョンを示すアラートが表示されることですが、これはユーザー フレンドリーではありません。突然、乱数のように見えるいくつかのボックスが表示されます。

あなたが考慮したいかもしれないいくつかの変更:

  • アラートを削除する
  • オブジェクト (または配列) を返すように変更します --- 最初の要素はブール値の true/false で、「ユーザーのマシンで見つかった必要なバージョンでした」 --- 2 番目の要素は、ユーザーのマシンで見つかった実際のバージョン番号です
于 2011-03-29T14:54:33.163 に答える