mozilla
Your Search Results

    コードの実例

    アドオンが格納されているディレクトリの取得

    あなたのアドオンがインストールされているディレクトリを確認する必要がある場合、次の様なトリックを用います。コード中の YOUREXTENSIONID はあなたのアドオンの ID で置き換えてください。

    Components.utils.import("resource://gre/modules/AddonManager.jsm");  
    
    AddonManager.getAddonByID("YOUREXTENSIONID", function(addon) {
      var addonLocation = addon.getResourceURI("").QueryInterface(Components.interfaces.nsIFileURL).file.path;
    });
    

    ファイルとバージョン情報へのアクセス

    Components.utils.import("resource://gre/modules/AddonManager.jsm");
    
    AddonManager.getAddonByID("my-addon@foo.com", function(addon) {
      alert("My extension's version is " + addon.version);
      alert("Did I remember to include that file.txt file in my XPI? " +
            addon.hasResource("file.txt") ? "YES!" : "No");
      alert("Let's pretend I did, it's available from the URL " + addon.getResourceURI("file.txt").spec);
    });
    

    アドオンの削除

    Components.utils.import("resource://gre/modules/AddonManager.jsm");
    AddonManager.getAddonByID("youraddon@youraddon.com", function(addon) {
      addon.uninstall();
    });
    

    アドオンの無効化

    Components.utils.import("resource://gre/modules/AddonManager.jsm");
    AddonManager.getAddonByID("youraddon@youraddon.com", function(addon) {
      if (addon.isActive) addon.userDisabled = addon.isActive;
    });

    アドオンのアンインストールのリスニング

    以下の例では、アドオンのアンインストール時にクリーンアップを実行する profile-before-change メッセージを取得する際に確認することができる変数 "beingUninstalled" を設定しています。

    var beingUninstalled;
    
    let listener = {
      onUninstalling: function(addon) {
        if (addon.id == "youraddon@youraddon.com") {
          beingUninstalled = true;
        }
      },
      onOperationCancelled: function(addon) {
        if (addon.id == "youraddon@youraddon.com") {
          beingUninstalled = (addon.pendingOperations & AddonManager.PENDING_UNINSTALL) != 0;
        }
      }
    }
    
    try {
      Components.utils.import("resource://gre/modules/AddonManager.jsm");
      AddonManager.addAddonListener(listener);
    } catch (ex) {}
    

    ドキュメントのタグと貢献者

    Contributors to this page: ethertank
    最終更新者: ethertank,