firebreath插件更新后刷新

时间:2012-08-16 17:00:12

标签: plugins updates firebreath

我想在更新后重新加载插件而不重新启动浏览器。我试过mac版本,它运行正常,但是我需要更改每个版本的插件名称。

navigator.plugins.refresh(false);

http://www.firebreath.org/display/documentation/Deploying+and+updating+your+plugin?focusedCommentId=8585308#comment-8585308

在Windows中,我尝试了这些步骤而无法使其正常工作。有人有运气吗?有谁知道什么可能是错的?

“在Windows上,您甚至需要将其安装到具有特定于版本的文件名的特定于版本的目录。安装插件后,您可以尝试以下方法在打开的浏览器中重新加载插件

<script>
    var myplugin = "<object id=\"plugin\" type=\"application/x-foobar\"> </object>";
    function onload(){ // Assuming this function put your plugin on the page in the first place
        document.getElementById('pluginHere').innerHTML = myplugin;
    }
    function reload(){
        document.getElementById('pluginHere').innerHTML = "";
        document.getElementById('pluginHere').innerHTML = myplugin;
    }
</script>

非常感谢。

2 个答案:

答案 0 :(得分:1)

这是一个很难以很多不同方式出错的技巧。我很难猜出具体可能出现什么问题,特别是因为你说“在Windows上”,但你还没有指明是什么浏览器。所有的浏览器都以微妙的方式工作,IE和其他浏览器完全完全不同

你可以尝试的事情:

  • 使用setTimeout在从DOM中删除插件和重新添加它之间添加一个小延迟
  • 打开about:plugins然后shift-refresh以查看它是否拿起新版本
  • 尝试不同的浏览器,看看行为是什么
  • 使用Process Monitor监视注册表的查询,并查看注册表项的访问时间;用它来帮助规划你的策略。

无论如何,我希望其中一些有帮助;我曾经以这种方式升级,但它太容易出错,并且太容易因新浏览器而改变,所以这些天我只是让客户端在升级时重新启动浏览器。它节省了很多麻烦和很多的开发时间。

答案 1 :(得分:0)

我使用带有MSI的签名CAB在Internet Explorer上加载插件。 在第一次安装时,我发现可以从Javascript访问该插件,但事件无法正常工作。 当我查看加载的插件时,插件未加载。 如果我刷新页面插件加载。 我的解决方案是从这个堆栈溢出问题中添加以下代码 One time page refresh after first page load 这就像一个魅力。