当前位置:   article > 正文

Mozilla Firefox扩展(Extensions)开发——jpm_火狐扩展开发怎么使用node

火狐扩展开发怎么使用node

参考:https://developer.mozilla.org/en-US/Add-ons/SDK

最近看了很多关于Mozilla Firefox扩展开发的东西,Extension、add-on、plugin,着实有些迷糊了。还好后来发现了jpm:

jpm:Jetpack Manager for Node.js

Replacing the previous python tool for developing Firefox Add-ons, cfx, jpm is a utility for developing, testing, and packaging add-ons.

jpm是专门用于开发、测试和打包Firefox Add-ons的。下面就来说说如何使用jpm开发add-on吧!

1、安装node.js
https://nodejs.org/en/
2、安装jpm
方法一:
npm install jpm -g
方法二:
git clone https://github.com/mozilla-jetpack/jpm.git
cd jpm
npm install
npm link        
方法一安装不成功,我使用的是方法二。未安装git的先下载git:http://git-scm.com/download/win
安装的时间有点长,请耐心等待...
3、 创建扩展
mkdir my-addon
cd my-addon
jpm init
执行"jpm init"命令后会要求输入一些信息等,Title、name等,部分有默认值,可以直接回车即可。执行完成后会生成一个add-on框架。
my-addon
|——index.js
|——package.json
|——test
         |——test-index.js
执行:jpm run
        jpm test
分别安装和测试刚创建好的add-on。
执行:jpm xpi
该命令会将add-on打包成xpi文件,Mozilla add-ons的格式。
后面还有命令:
jpm post
jpm watchpost
jpm sign
这些命令可自行查阅:https://developer.mozilla.org/en-US/Add-ons/SDK/Tools/jpm#Installation。
4、创建工具栏和右键菜单
1)、Adding a Button to the Toolbar

https://developer.mozilla.org/en-US/Add-ons/SDK/Tutorials/Adding_a_Button_to_the_Toolbar

第3步中index.js内容改为如下即可:

  1. var buttons = require('sdk/ui/button/action');
  2. var tabs = require("sdk/tabs");
  3. var button = buttons.ActionButton({
  4. id: "mozilla-link",
  5. label: "Visit Mozilla",
  6. icon: {
  7. "16": "./icon-16.png",
  8. "32": "./icon-32.png",
  9. "64": "./icon-64.png"
  10. },
  11. onClick: handleClick
  12. });
  13. function handleClick(state) {
  14. tabs.open("https://www.mozilla.org/");
  15. }
同时在my-addon目录下创建data目录,下面放icon-16.png、icon-32.png、icon-64.png三张图片。jpm run即可看到效果。

2)、Add a Context Menu Item

https://developer.mozilla.org/en-US/Add-ons/SDK/Tutorials/Add_a_Context_Menu_Item

第3步中index.js内容改为如下即可:

  1. var contextMenu = require("sdk/context-menu");
  2. var menuItem = contextMenu.Item({
  3. label: "Log Selection",
  4. context: contextMenu.SelectionContext(),
  5. contentScript: 'self.on("click", function () {' +
  6. ' var text = window.getSelection().toString();' +
  7. ' self.postMessage(text);' +
  8. '});',
  9. onMessage: function (selectionText) {
  10. console.log(selectionText);
  11. }
  12. });




声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/很楠不爱3/article/detail/333011
推荐阅读
相关标签
  

闽ICP备14008679号