2015.7.14
因工作,想写一个能实现将 Excel 中的信息自动提交到网页表单的工具,决定开发一个插件试验一下。第一次开发 FF 插件,也决定写一下开发日志,一方面和大家分享经验,另一方面也是希望能坚持到底
今天主要做了信息收集。
了解到基本上只需要 XML 和 Javascrtip 就可以了
FF 官方开发中心
https://developer.mozilla.org/en-US/Add-ons/Overlay_Extensions/XUL_School/Getting_Started_with_Firefox_Extensions
https://developer.mozilla.org/en-US/docs/Mozilla/Tech/XPCOM/Guide/Building_components_in_JavaScript
https://developer.mozilla.org/en-US/docs/Gecko_SDK
http://kb.mozillazine.org/Getting_started_with_extension_development
实战 Firefox 扩展开发
http://www.ibm.com/developerworks/cn/web/wa-lo-firefox-ext/
一个外文博客
http://robertnyman.com/2009/01/24/how-to-develop-a-firefox-extension/
比较好的两篇中文博客
http://blog.csdn.net/zhaozheng7758/article/details/6307839
最有价值的一篇,作者开发了同样的FillForm, 但是和我的需求不太一样,但是很有参考价值
http://blog.csdn.net/sysdzw/article/details/5514062
搭建开发环境
推荐工具
Extension Developer‘s Extension - make life easier for Firefox extension developers. Testing JavaScript code, prototyping XUL layouts, and building XPI packages are all made easier by this extension. Install it and try it out!
官方 development addon 下载地址
https://developer.mozilla.org/en-US/Add-ons/Setting_up_extension_development_environment
Extension Developer‘s Extension - https://addons.mozilla.org/en-US/firefox/addon/7434/
Tips:
1. 同时运行多个 FF 实例 - 命令行运行如下命令,可打开创建配置文件向导,新建一个 Dev Profile
Start -> Run C:\Program Files (x86)\Mozilla Firefox\firefox.exe -no-remote -p dev
2. 地址栏输入 about:config,可以打开开发人员配置页
3. 建立测试 pointer 文件,放在 C:\Users\tzheng2x\AppData\Roaming\Mozilla\Firefox\Profiles\jxafzakn.Dev\extensions
建立文件夹结构
- install.rdf
- chrome.manifest
- chrome
- content
- sample.xul
- content
测试示例文件 Install Hello World
很简单,就是一个 XPI 格式文件 ( 实际上就是一个 ZIP 文件, (pronounced "zippy") stands for Cross-Platform Installer, 所有支持 FF 的平台都可以使用 XPI ),直接拖到 FF 内容区就可以安装测试了 。
文件结构分析
install.rdf 文件
rdf - resource description framework
今天到这里吧,头晕了
2015.7.15
今天终于完成了调试环境的搭建,这样就debug省事多了,不用每次改一点儿再zip再重新部署.
步骤:
为了不影响平时的使用,建议建立一个新的 FF dev 的 profile.
在这个 dev profile 下的 extenstion 目录下建立 pointer 文件,指向你的源程序目录
下载 Extension Developer‘s Extension - https://addons.mozilla.org/en-US/firefox/addon/7434/
安装后只要运行 reload all chrome 就可以了。
XUL 的元素参考列表
https://developer.mozilla.org/en-US/docs/Mozilla/Tech/XUL
今天实现了一部分把文本信息写到网页表单中去的功能,基本没有遇到太多问题,接下来要考虑如何从 Excel 中抽取信息,看起来蛮好玩。
--------------------------------------------------------------------------------------------
什么是 XPCOM?
XPCOM 是一种跨平台的组件对象模型,类似于微软的 COM。它有多种的语言绑定,可以在 JavaScript,Java,Python 和 C++ 中使用和实现 XPCOM 的组件。XPCOM 本身提供了一系列核心组件和类,比如文件和内存管理,线程,基本的数据结构(字符串,数组)等。
Reference:
XPCOM guide
https://developer.mozilla.org/en-US/docs/Mozilla/Tech/XPCOM/Guide
似乎要用到下面的类, 看来要花点时间研究一下了
Components.classes["@mozilla.org/filepicker;1"]
Components.classes["@mozilla.org/network/file-output-stream;1"]