Mac で Safari/Firefox 用のブラウザ プラグインを使用しています。ユーザーが Web ページを起動すると、ユーザーにプラグインをダウンロードするように求められます。理想的には、ダウンロードが完了するとページが自動的に更新され、プラグインが使用されます。
コードはプラグインを検出できますが、プラグインでメソッドを呼び出すと、例外がスローされます。ページを手動で更新してプラグイン メソッドを呼び出すと、それが可能になります。
InitPlugin()
{
var IsPluginInstalled;
var plugin = navigator.plugins["My Plug-In"]; // success
var engine;
if (plugin)
{
engine = plugin.getElementById("MyPlugin");
var version = engine.getAttributeByKey("my_plugin_version"); // crashing here.
IsPluginInstalled = true;
}
}
RefreshPlugin()
{
navigator.plugins.refresh();
if (!InitPlugin())
{
setInterval(InitPlugin,3000);
}
}
インストール後、ページは自動的に更新されます。これは、ページを手動で更新すると正常に動作するコードです。