FireBreath を使用して、クロス ブラウザー プラグインを作成しています。HTML テスト ページでは、プラグインがインストールされているかどうかを検出し、プラグインが検出されない場合は MSI インストーラーのダウンロードを開始するために、次の関数を使用しています。
function checkPlugin(){
var pluginInstalled = false;
if ((navigator.userAgent.indexOf('MSIE') != -1) && (navigator.userAgent.indexOf('Win') != -1)) {
// For IE
var pluginObject = null;
try {
pluginObject = new ActiveXObject('Test.TestPlugin');
if(pluginObject){
pluginInstalled = true;
//pluginObject.Dispose();
}
} catch (e) {
// Cannot load the plugin. Most probably it's not installed
console.log(e.message);
}
}else{
// For other browsers
pluginInstalled = (navigator.mimeTypes && navigator.mimeTypes["application/x-test"] && navigator.plugins["TestPlugin"]);
}
return pluginInstalled;
}
上記の機能は、IE を除く他のすべてのブラウザーで正常に動作します。ActiveXObject を使用してプラグインのインスタンスを作成しようとすると、IE 9 と 10 の両方がクラッシュします。この機能のサポートが FireBreath 1.4 以降に追加されたことに注意しましたが、FireBreath の最新バージョンである 1.7 を使用していると思います。この問題を解決するための支援は大歓迎です:)