Mozilla加载项首次运行时执行代码

时间:2015-09-10 14:06:51

标签: javascript firefox-addon firefox-addon-sdk mozilla jpm

我目前正在构建一个add,我想在第一次运行时执行特定的代码。更具体地说,我想点击我的添加按钮,浏览我的文件并选择一个可执行文件。这个浏览过程应该只在第一次运行时完成,因为我希望我的按钮能够记住"在第一次运行后打开此特定文件。

jetpack.future.import("me");

var buttons = require('sdk/ui/button/action');

var button = buttons.ActionButton({
  id: "execute-jar",
  label: "Download Report",
  icon: {
    "16": "./icon-16.png",
    "32": "./icon-32.png",
    "64": "./icon-64.png"
  },
  onClick: handleClick
});

jetpack.me.onFirstRun(function(){    jetpack.notifications.show("Oh boy, I'm installed!");});

function handleClick(state) {   

    let {Cc, Ci} = require('chrome');
    var file = Cc["@mozilla.org/file/local;1"].createInstance(Ci.nsILocalFile);
    file.initWithPath("C:\\Users\\QaziWa\\DownloadReportPPE.jar");

    if(file.exists()){
        file.reveal();
        file.launch();
    }
    else {
        console.log('Failed.');
    }
}

我在MDN上发现了这个:https://developer.mozilla.org/en-US/docs/Archive/Mozilla/Jetpack/Meta/Me

然而,这是存档的东西,当我尝试这个时,我的代码没有成功并获得:"消息:ReferenceError:未定义jetpack"。

我在这一点上非常难过,因为我已经看过几个与我想要的相关的问题,但是我无法弄清楚如何在我的附加组件中实现这个非常需要的功能。有人能指出我正确的方向或提供一些有效的代码示例吗?

编辑:为清楚起见:我不想硬编码路径。我打算添加允许用户选择他们希望执行的文件的功能。我的主要问题是如何在第一次运行时执行某段代码?

0 个答案:

没有答案