我有浏览器插件的Safari/火狐在Mac.When用户启动网页,它会要求用户下载的plugin.Ideally,它应该刷新页面时,下载完成,并利用插件。
代码能够检测到插件,但是当我在插件中调用方法时,它抛出了异常。如果我手动刷新页面并调用插件方法,我就能够做到这一点。
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);
}
}安装后,页面应自动刷新,这是代码工作良好,如果刷新页面手动。
发布于 2013-08-07 20:32:06
我不知道这会在哪里刷新页面。不过,应该起作用的是重新实例化插件(例如,将其切换为display:none并返回)。
这看起来你可能访问插件太快了-插件可能还没有完成实例化。
在找到它在navigator.plugins中列出并(重新)实例化后,您可以:
后将您的插件调用到页面中
在这两种情况下,您都希望在一段“合理的”时间后超时,并得出结论
..。在MDN上有一个关于这个的best-practices article。
https://stackoverflow.com/questions/18096282
复制相似问题