首页 文章

从暂存器访问附加SDK模块

提问于
浏览
3

我想使用暂存器测试我的附加代码的小片段 . 在这种情况下,我正在尝试访问通知模块,如下所示:

const { notify } = require("sdk/notifications");
notify({
  //My notification's options
});

正如所料,我得到错误 Exception: require is not defined . 由于附加SDK与Firefox一起打包,因此我可以直接从暂存器访问模块 . 谢谢 .


编辑:经过一些谷歌搜索后,我找到了scratch-kit (github),这是一个完全符合我要做的附加组件 . 但是它是unfortunately broken,所以我希望将这个功能添加到devtools中filed a bug .

2 回答

  • 2

    目前还没有办法做到这一点 . 可能会发生一些事情,使人们可以观看/贡献:

  • 4

    到目前为止,有一种相对简单的方法可以做到这一点 . 如果在特权上下文中执行,则以下代码可以正常工作(意味着将Scratchpad的环境切换为“Browser”):

    let {require} = Cu.import("resource://gre/modules/commonjs/toolkit/require.js", {});
    let {notify} = require("sdk/notifications");
    

    从Firefox 36开始支持此功能,但截至目前尚未真正记录 - 这意味着将来可能会停止工作 .

    供参考:pull request #1679添加了此功能(似乎不适合外部使用) .

相关问题