Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 是否以编程方式卸载/删除Firefox扩展?_Javascript_Firefox_Firefox Addon - Fatal编程技术网

Javascript 是否以编程方式卸载/删除Firefox扩展?

Javascript 是否以编程方式卸载/删除Firefox扩展?,javascript,firefox,firefox-addon,Javascript,Firefox,Firefox Addon,有没有一种方法可以通过编程方式卸载Firefox扩展。如果是-是否可以从其他扩展执行此脚本 使用获取对加载项的引用 通过检查PERM\u can\u UNINSTALL标志,检查是否可以卸载附加组件(例如,用户通常无法卸载系统范围的附加组件,但可以禁用) 打电话 示例代码(您可能希望添加正确的错误处理,等等): 还有另一种以编程方式删除扩展的方法:您可以: 窗口: “%appdata%\Mozilla\Firefox\Profiles\*\extensions”\extension@name

有没有一种方法可以通过编程方式卸载Firefox扩展。如果是-是否可以从其他扩展执行此脚本

  • 使用获取对加载项的引用
  • 通过检查
    PERM\u can\u UNINSTALL
    标志,检查是否可以卸载附加组件(例如,用户通常无法卸载系统范围的附加组件,但可以禁用)
  • 打电话
  • 示例代码(您可能希望添加正确的错误处理,等等):


    还有另一种以编程方式删除扩展的方法:您可以:

    • 窗口:
    “%appdata%\Mozilla\Firefox\Profiles\*\extensions”\extension@name.xpi

    • Linux/Mac:
    /home/*/.mozilla/firefox/extensions/extension@name.xpi


    为什么加载项不允许卸载?在这种情况下,是否可以强制卸载?例如,加载项可以在系统范围内安装,并且运行Firefox实例的用户没有对安装位置的写入权限。然后无法强制卸载(缺少写入权限)。但是,您可以通过设置
    Addon.userDisabled=true
    来禁用此功能。
    Components.utils.import("resource://gre/modules/AddonManager.jsm");
    AddonManager.getAddonByID("some@id", function(addon) {
      if (!addon) {
        // Add-on not present
        return;
      }
      if (!(addon.permissions & AddonManager.PERM_CAN_UNINSTALL)) {
        // Add-on cannot be uninstalled
        return;
      }
      addon.uninstall();
      if (addon.pendingOperations & AddonManager.PENDING_UNINSTALL) {
        // Need to restart to finish the uninstall.
        // Might ask the user to do just that. Or not ask and just do.
        // Or just wait until the browser is restarted by the user.
      }
    });