如何确定网页中JavaScript中安装脚本的firefox扩展版本?

奥利弗

我希望能够询问用户登录我的Web应用程序时是否要安装我的firefox扩展,以防他们尚未安装,或者其版本不是最新版本。有可能这样做吗?

我无法通过搜索网络收集有关此事的有用信息。我当前的尝试如下所示:

$(function() {
    if ("InstallTrigger" in window) {
        var params = {
            "Example": { 
                URL: "https://www.example.com/plugins/firefox/latest/example.xpi",
                IconURL: "https://www.example.com/favicon.ico",
                Hash: "sha1:37441290FFDD33AB0280BECD79E1EF",
                toString: function () { return this.URL; }
            }
        };

        alert(InstallTrigger.compareVersion("Example", "0.8"));

        InstallTrigger.install(params);
    }
});

使用InstallTrigger.install()的安装有效。但是在Firefox 38中,对InstallTrigger.compareVersion()的调用导致错误“ TypeError:InstallTrigger.compareVersion不是函数”。对于InstallTrigger.getVersion()也是如此。

在此处记录了compareVersion():http : //www.applied-imagination.com/aidocs/xul/xultu/elemref/ref_InstallTrigger.html但是我也发现有关compareVersion()与firefox扩展无关的讨论,所以我很困惑。

如果安装的扩展版本不是当前版本,怎么可能只调用InstallTrigger.install()?

奥利弗

我现在找到了合适的解决方案。InstallTrigger.compareVersion()和InstallTrigger.getVersion()似乎不再是InstallTrigger API的一部分,并且似乎也没有其他方法可以直接检索网页内已安装的Firefox插件的信息。

诀窍是,扩展程序可以通过操作DOM将其插入页面来自身提供此信息。这是使用firefox SDK的示例,该示例向主体添加了CSS类。

var pageMod = require("sdk/page-mod");
var contentScriptValue = 
    'document.body.className += " ExampleComFirefoxExtensionInstalledClass";';
pageMod.PageMod({
    include: "*www.example.com*",
    contentScript: contentScriptValue
});

然后页面可以检查插入的信息。

$(function() {
    window.setTimeout(function() {
        if ("InstallTrigger" in window && 
            !$('body').hasClass('ExampleComFirefoxExtensionInstalledClass'))) {
            var params = {
                "Example": { 
                    URL: "https://www.example.com/plugins/firefox/latest/example.xpi",
                    IconURL: "https://www.example.com/favicon.ico",
                    Hash: "sha1:37441290FFDD33AB0280BECD79E1EF",
                    toString: function () { return this.URL; }
                }
            };

            InstallTrigger.install(params);
        }
    }, 500);
});

需要超时,因为在页面完全加载后,插件会处理DOM。

因此,该插件还可以将其版本号插入到网页中,以便能够直接安装较新的版本。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何确定网页中JavaScript中安装脚本的firefox扩展版本?

来自分类Dev

如何在chrome扩展内容脚本中确定CSS范围

来自分类Dev

如何确定特定分区中安装了哪个版本的 ubuntu?

来自分类Dev

如何确定JavaScript脚本中的解释器类型?

来自分类Dev

如何确定脚本是否已经从Chrome扩展程序注入到文档中

来自分类Dev

如何在.net中安装网页包?

来自分类Dev

如何确定C ++中的IP版本?

来自分类Dev

如何确定C ++中的IP版本?

来自分类Dev

如何确定获取html中的http版本?

来自分类Dev

确定Sublime Text 3中安装了哪个版本的插件?

来自分类Dev

确定Sublime Text 3中安装了哪个版本的插件?

来自分类Dev

您如何确定网页中关键字的出现次数?

来自分类Dev

如何确定URL是否已放置在网页中?

来自分类Dev

如何在41.0b1 +中强制安装未经验证的Firefox扩展?

来自分类Dev

如何安装以前的Firefox版本?

来自分类Dev

Firefox扩展main.js文件中的包含脚本

来自分类Dev

如何在Firefox中模拟Firefox“保存文件”->确定

来自分类Dev

如何在Firefox中模拟Firefox“保存文件”->确定

来自分类Dev

如何在shell脚本中扩展变量?

来自分类Dev

如何从%pre脚本中获取RPM的版本?

来自分类Dev

在Ubuntu中安装旧软件版本(例如Firefox 22)

来自分类Dev

在Ubuntu服务器版本中安装firefox

来自分类Dev

如何在网页中显示webpshere自由版本

来自分类Dev

一键安装debian软件包中如何确定cloudera minor版本?(即5.1?5.2?)

来自分类Dev

如何通过AppleScript在Safari中安装扩展

来自分类Dev

如何通过AppleScript在Safari中安装扩展

来自分类Dev

如何安装比库中更高版本的libav

来自分类Dev

如何确定脚本的版本并进行更新

来自分类常见问题

如何确定已安装的Webpack版本

Related 相关文章

  1. 1

    如何确定网页中JavaScript中安装脚本的firefox扩展版本?

  2. 2

    如何在chrome扩展内容脚本中确定CSS范围

  3. 3

    如何确定特定分区中安装了哪个版本的 ubuntu?

  4. 4

    如何确定JavaScript脚本中的解释器类型?

  5. 5

    如何确定脚本是否已经从Chrome扩展程序注入到文档中

  6. 6

    如何在.net中安装网页包?

  7. 7

    如何确定C ++中的IP版本?

  8. 8

    如何确定C ++中的IP版本?

  9. 9

    如何确定获取html中的http版本?

  10. 10

    确定Sublime Text 3中安装了哪个版本的插件?

  11. 11

    确定Sublime Text 3中安装了哪个版本的插件?

  12. 12

    您如何确定网页中关键字的出现次数?

  13. 13

    如何确定URL是否已放置在网页中?

  14. 14

    如何在41.0b1 +中强制安装未经验证的Firefox扩展?

  15. 15

    如何安装以前的Firefox版本?

  16. 16

    Firefox扩展main.js文件中的包含脚本

  17. 17

    如何在Firefox中模拟Firefox“保存文件”->确定

  18. 18

    如何在Firefox中模拟Firefox“保存文件”->确定

  19. 19

    如何在shell脚本中扩展变量?

  20. 20

    如何从%pre脚本中获取RPM的版本?

  21. 21

    在Ubuntu中安装旧软件版本(例如Firefox 22)

  22. 22

    在Ubuntu服务器版本中安装firefox

  23. 23

    如何在网页中显示webpshere自由版本

  24. 24

    一键安装debian软件包中如何确定cloudera minor版本?(即5.1?5.2?)

  25. 25

    如何通过AppleScript在Safari中安装扩展

  26. 26

    如何通过AppleScript在Safari中安装扩展

  27. 27

    如何安装比库中更高版本的libav

  28. 28

    如何确定脚本的版本并进行更新

  29. 29

    如何确定已安装的Webpack版本

热门标签

归档