javascript/jQuery/etc を使用して Flash がインストールされているかどうかを検出し、インストールされていない場合は、Flash をインストールする必要があることをユーザーに通知する情報を含む div を表示するにはどうすればよいですか?
8 に答える
十分でない場合swfobject
、またはもう少しオーダーメイドのものを作成する必要がある場合は、これを試してください。
var hasFlash = false;
try {
hasFlash = Boolean(new ActiveXObject('ShockwaveFlash.ShockwaveFlash'));
} catch(exception) {
hasFlash = ('undefined' != typeof navigator.mimeTypes['application/x-shockwave-flash']);
}
7と8で動作します。
フラッシュプラグインが無効になっているだけでインストールされている場合、@ 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;
}
}
swf オブジェクトを使用します。インストールされている場合は、div をフラッシュに置き換えます。参照: http://code.google.com/p/swfobject/
navigator.mimeTypes を使用できます。
if (navigator.mimeTypes ["application/x-shockwave-flash"] == undefined)
$("#someDiv").show ();
jqplugin:http ://code.google.com/p/jqplugin/
$.browser.flash == true
私は、もともと justpassinby によって提案された Adobe の検出キットを使用しました。バージョン番号を検出し、それを「必要なバージョン」と比較するため、彼らのシステムは優れています
悪い点の 1 つは、検出されたフラッシュのバージョンを示すアラートが表示されることですが、これはユーザー フレンドリーではありません。突然、乱数のように見えるいくつかのボックスが表示されます。
あなたが考慮したいかもしれないいくつかの変更:
- アラートを削除する
- オブジェクト (または配列) を返すように変更します --- 最初の要素はブール値の true/false で、「ユーザーのマシンで見つかった必要なバージョンでした」 --- 2 番目の要素は、ユーザーのマシンで見つかった実際のバージョン番号です