社区应用 最新帖子 精华区 社区服务 会员列表 统计排行
  • 492阅读
  • 2回复

[分享]火狐浏览器插件开发入门教程

楼层直达
z3960 
级别: FLY版主
发帖
786948
飞翔币
211610
威望
215717
飞扬币
2619629
信誉值
8


许多网友都想学习火狐浏览器插件开发这一方面的知识,不过,目前,许多资料都是比较晦涩难懂,不太适合初学者。那么,初学者想要学习火狐浏览器插件开发该怎么入门呢?还是一起来看看今天的火狐浏览器插件开发入门教程!

  火狐浏览器
  首先需要知道什么是“Firefox插件”。这里说的“插件”只是一个通俗的说法,其实Firefox这种扩展功能的“插件”包括:扩展extension和插件plugin。
  Firefox官方网站的解释是:Extensions are small add-ons that add new functionality to your Mozilla program. Plugins are programs that allow websites to provide content to you and have it appear in your browser.(扩展是能够给Mozilla增加一些新功能的附加软件,插件是允许网站向你提供内容并在浏览器中显示的程序)。通俗的讲,“扩展”是基于Firefox本身增加的一些实用功能,而“插件”则是在Firefox之外独立编写的程序,用于显示网页中的特定内容如Flash、视频和Java 等。
  其实,我们需要开发的是Extension。
  要开发Extension,可以分几步走:
  1.了解什么是Extension,一般现成的Extension怎样组成的?里边包含的每个文件具体的作用是什么?
  2.了解Firefox处理运行Extension的机制。例如Xpcom,chrome机制等。
  3.看看入门例子,用记事本,做一个最简单的扩展,运行一下。另外,使用Firefox,下载一些常用的扩展,并查看一下人家的源代码。
  4.正式搭建开发环境。
  5.一边学习人家的代码,一边修改代码实现自己的扩展。
  第一步和第二步:
  需要了解:chrome,rdf,manifest,xul,xpcom等概念。
  扩展(extensions)
  Extensions添加新功能到Mozilla Firefox中。Extensions可以简单添加一个工具栏按钮,也可以实现一个完整的新功能。Extensions可以让firefox更加适合个人需要。
  Extensions跟plugins(插件)不同。插件帮助浏览器显示特殊内容,例如播放多媒体文件。常见的插件是flash player。而Extensions也跟搜索引擎插件不同,搜索引擎插件只是在搜索栏里边多加入一个搜索引擎地址而已。
  一个扩展,通常是一个XPI(Cross-Platform Installer Module)包,其实是一个zip类型的压缩包,里边包括必须的文件。在下边的图1中,显示了一个标准的扩展包括的文件和文件的目录结构。

  firefox扩展目录结构
  在上图中,content 目录下面存放的是扩展的描述界面的 XUL 文件和增加行为的 JavaScript 文件。locale 目录存放的是本地化相关的文件。如果需要支持英文和中文,就可以在 locale 目录下面新建 en-US 和 zh-CN 目录来存放相应的本地化字符串。skin 目录存放的是一些 CSS 文件,用来定义扩展的外观。chrome.manifest 是 Chrome 注册的清单文件(参见 2.2节)。install.rdf 分别包含了扩展安装的信息。
  chrome
  Chrome 指的是应用程序窗口的内容区域之外的用户界面元素的集合,这些用户界面元素包括工具条,菜单,进度条和窗口的标题栏等。Chrome 提供者能为特定的窗口类型(如浏览器窗口)提供 chrome。有三种基本的 chrome 提供者:
  l 内容(Content):通常是 XUL(XML User Interface Language) 文件。 而XUL文件将会指定扩展在Firefox中运行时表现的界面和功能。XUL文件是一种Javascript文件,设计的目的是为了描述窗口和对话框的内容。
  l 区域(Locale) :存放本地化信息。
  l 皮肤(Skin):描述 chrome 的外观。通常包含 CSS 和图像文件。
  XULRunner
  XULRunner 项目提供一套称为XULRunner的Mozilla运行支持包,用于启动基于XUL+XPCOM(见2.4节)的程序,例如Firefox,Thunderbird,Sunbird。它提供各种机制,包括安装,升级,卸除这些软件的功能。
  而Firefox整个程序主界面和扩展的界面都是由XUL文件来描述的,所以在Firefox运行过程中,和扩展使用过程中,都是靠XULRunner来支持。
  XPCOM
  XPCOM(Cross Platform Component Object Model)是一种跨平台组件对象模型,类似于微软的 COM。它有多种语言系结(Language Binding),使 XPCOM 组件可使用并实现于C++、JavaScript、Java 及 Python。XPCOM 的界面是由称为 XPIDL (Interface Definition Language)所定义。
  XPCOM 自身提供了一套核心组件和类别,例如,档案和内存管理、线程、基本数据结构(strings, arrays, variants)等。大多数 XPCOM 组件并非由核心组件所提供,而是由其他平台或应用程序、甚至是延伸套件所提供。
  而在Firefox中,绝大多数的功能都基于XPCOM机制。例如Firefox为扩展开发提供的接口都是用XPCOM方式来实现的。
  例如gRDF = Components.classes[“@mozilla.org/rdf/rdf-service;1”]
  .getService(Components.interfaces.nsIRDFService);
  将获取RDF模块的nsIRDFService实例。
  XPInstall
  XPInstall(Cross-Platform Install)是Mozilla系列软件或者其他基于XUL的软件中用于安装extensions的技术。在Firefox2.0的源代码中,有一个名为xpinstall的文件夹,存放跟XPInstall模块相关的代码。
  另外需要特别指出Firefox的扩展分为普通默认扩展和定制安装扩展。普通默认扩展没有定制的安装代码,整个安装过程由Firefox默认流程来执行。而定制安装扩展的安装包中有定制的安装过程信息。而这些信息是用专门的Javascript代码编写,调用XPInstall提供的API来实现。定制安装扩展,常见的例子是用Firefox打开扩展中心,点击某个扩展就可以在线安装,其中就是调用了XPInstall的API。
  简单了解Firefox Extension组成说明和Firefox处理Extension的过程分析。
  第三步:
  根据这个简单教程,尝试一下hello world:
  另外就是在Firefox官方扩展网站下载一些扩展来研究一下了。
  安装后,Extension的代码会在磁盘这个位置:
  C:Documents and SettingsUserNameApplication DataMozillaFirefoxProfilesProfileextensions
  第四步:
  正式开始使用开发环境。
  1.Firefox安装相关的扩展:firebug,1.Firefox 3.0,这个肯定必不可少了。在此推荐3.0,因为最新版3.6或者3.7,那些扩展还没有更新跟进,所以要想安装更多的扩展,还是以3.0为好。
  2.Firebug,这个不必多说。虽然我只是菜鸟,只是用这个来定位某些xul元素对应什么代码,但帮助不少。再到firebug的官网,下载chromebug:(有了chromebug才能更好的调试自己写的chrome文件)
  因为调试js需要开开关关firefox,太麻烦,所以一些代码可以在firebug控制台先测试。在firefox7试验过
  3.Extension Developer。官网推荐,当然安装啦。这个是一套Firefox扩展,包括打包xpi功能,预览xul等。
  4.Spket IDE。开发扩展的IDE,官网推荐的,比较好用。不过好像不能打包xpi,也不能测试。不过只作为编辑器也不错了。用它来看人家的扩展的代码,非常舒服……
  5.xul explorer。预览xul效果。
  6.emEditor。快速打开代码文件,进行修改。另外最重要的功能是:查找。研究人家的代码的时候,JavaScript的代码转来转去,太难找到某些变量或者对象的定义了。用emEditor的“在文件中查找”功能,作用非常大,查找出来的结果有预览……(后来发现,也可以直接用Spket IDE的search--file功能,跟eclipse的查找功能类似,不过缺点就是没有预览,每次要双击了才知道是怎么匹配的。)
  7.另外,习惯使用eclipse + spket + XULBooster + Firefox
  第五步:
  慢慢学习Javascript,CSS还有一些细节的技术。尝试修改人家已有的Extension,加入自己想要的功能。
 
我不喜欢说话却每天说最多的话,我不喜欢笑却总笑个不停,身边的每个人都说我的生活好快乐,于是我也就认为自己真的快乐。可是为什么我会在一大群朋友中突然地就沉默,为什么在人群中看到个相似的背影就难过,看见秋天树木疯狂地掉叶子我就忘记了说话,看见天色渐晚路上暖黄色的灯火就忘记了自己原来的方向。
z3960 
级别: FLY版主
发帖
786948
飞翔币
211610
威望
215717
飞扬币
2619629
信誉值
8

只看该作者 1 发表于: 2016-08-08
火狐浏览器到底好在哪里?

浏览器是很多电脑用户都需要使用的一款软件,其中,不少电脑用户推荐使用的是:火狐浏览器这款浏览器。不过,对于火狐浏览器比较陌生的网友可以会问:火狐浏览器到底好在哪里?为什么要使用火狐浏览器这款浏览器呢?关于这个问题,我们一起来看看知乎的大神们怎么说!

  火狐浏览器
  火狐浏览器用户评价一:
  对于我来说,火狐浏览器主要是因为非常丰富的扩展,大大增强了浏览器的功能。每个人对功能的需求都不一样。但是,海量的可选扩展,几乎能符合每个人的胃口。按照自己的想法,定制自己的浏览器。让浏览器用得更顺手。
  但是,火狐也有让人非常诟病的缺点:启动非常慢。
  火狐浏览器用户评价二:
  主要是定制性好。丰富的插件扩展,可以定制出适合自己的浏览器。
  适合开浏览器不止是单纯看看电影和小说的人,把浏览器作为操作系统使用,爱折腾也不怕折腾的人。
  火狐浏览器用户评价三:
  插件很好用(虽然有的因为版本问题很无奈),对于程序员来说很不错!
我不喜欢说话却每天说最多的话,我不喜欢笑却总笑个不停,身边的每个人都说我的生活好快乐,于是我也就认为自己真的快乐。可是为什么我会在一大群朋友中突然地就沉默,为什么在人群中看到个相似的背影就难过,看见秋天树木疯狂地掉叶子我就忘记了说话,看见天色渐晚路上暖黄色的灯火就忘记了自己原来的方向。
z3960 
级别: FLY版主
发帖
786948
飞翔币
211610
威望
215717
飞扬币
2619629
信誉值
8

只看该作者 2 发表于: 2016-08-08

 一直想整理一些火狐浏览器比较好玩的插件推荐给大家,直到今天才理出一些思路。那么,火狐浏览器有什么好玩的扩展插件呢?在今天的教程中,我们就给大家推荐一些,如果大家还有更好的推荐的话,欢迎留言哦!

  火狐浏览器
  火狐浏览器好玩的扩展插件推荐:
  相信很多喜欢火狐浏览器Firefox的fans们最得意的就是其强大的DIY可定制性。多达6000个Add-on供您选择,可随心所欲添加至浏览器,实现您喜欢的很多功能。然而Firefox众多的扩展却让不少新手大喊头疼,扩展虽多,却不知道那些是适合自己的,感觉无从下手。用火狐也有一年多了,介绍曾经使用过的一些扩展,这可不是那里copy过来的哦,所有扩展我都仔细研究和使用过。如果新手感觉使用火狐有困难,完全可以使用火狐中国版,虽然个人对火狐中国版没什么好感,但是火狐中国已经内置了部分实用扩展,比较容易上手。特别是后来推出的火狐魔镜,不少Firefox的老手不禁大喊好用,可惜这个扩展和中国版捆绑在一起官方没提供下载。
  推荐:火狐浏览器插件下载和安装方法
  实用扩展:
  Adblock Plus+Adblock Plus: Element Hiding Helper
  能有效减少垃圾广告对用户的骚扰
  AutoPager
  自动翻页
  all-in one Gestures
  Firefox的王牌鼠标手势扩展
  BlockSite
  阻止你浏览你所设定的网站
  Easy DragToGo/QuickDrag
  超级拖曳,easy dragtogo功能更强大一些
  External Application Buttons mod for Firefox 3.0
  可在工具栏添加外部程序快捷方式
  Extended Statusbar
  显示页面的图片数、网页大小、载入网页的速度等
  Flash block
  屏蔽网页上占用资源极大的Flash广告
  FlashGot
  调用迅雷、快车等下载工具
  IE Tab Plus
  在 Firefox 中调用IE内核打开网页
  Image Zoom
  图像缩放
  lmnpop
  截取网页的任意部分弹出窗口独立显示,相当于搜狗浏览器的视频弹窗窗口独立播放,但是这个更强大些,文本和图像也能单独弹出窗口来显示
  LastPass
  浏览器密码管理助手
  MinimizeToTray Plus
  将Firefox最小化到系统托盘
  Paste and Go 3
  添加鼠标右键菜单—粘帖并转到
  Remove It Permanently
  类似opera内容拦截的智能去广告
  Snap Links Plus
  打开用户鼠标框起来区域的多个链接
  stop autoplay
  禁止自动播放的音乐和flash视频
  Tab Mix Plus
  增强Firefox的多标签浏览功能
  Tab Utilities
  和Tab Mix Plus大同小异,但更精简实用
  Yet Another Smooth Scrolling
  优化鼠标和光标兼的滚屏效果
  Undo Closed Tabs Button
  恢复刚关闭标签页
  WOT
  基于社区的网站评级,在搜索结果旁边显示评级图标(主要是防钓鱼网站)
  火输
  集成于火狐的中文输入法
  Google翻译浏览器按钮(用于代替gTranslator扩展)
  http://translate.google.com/translate_buttons?hl=zh-CN
  Google Taiwan 搜索引擎
  推荐几个键盘扩展(从下载量来看,使用的人不多,主要是给键盘流的朋友用的)
  SwiftTabs
  自订热键用以切换标签、关闭标签
  Gamer‘s Control
  看名字就知道了,用游戏中的wasd等键控制Fireofx
  SurfKeys
  功能比swifttabs更强大,和Gamer’s Control相比能自定义快捷键
  LOL
  按住空格键,能看到所有链接前都有一个数字,输入数字就能打开相应的链接
  SiteLauncher
  自定义热键打开常用网站
  gleeBox
  我一般用这个扩展来代替firefox的地址栏和搜索栏,用来查找文字也相当方便
  Mouseless Browsing
  功能强大,但设置复杂,该扩展没有中文界面,适合英文较好爱折腾的童鞋
  个性化的扩展才能彰显自己的个性和实现一些独特的功能。
  个性扩展:
  Back/Forward Thumbnail
  为前进后退按钮增加缩略图显示
  Compact Menu 2
  将菜单栏整合为一个按钮/菜单
  ColorfulTabs
  让你的标签色彩斑斓
  Cooliris
  以3D的方式浏览整个Web
  CoolPreviews
  弹出单独的窗口预览网页链接和图像
  Dog Ears
  标记网页,便于快速寻找
  Fancy Numbered Tabs
  为标签添加数字编号,按下Ctrl/Alt+数字快速选择标签
  Fission
  在地址栏中显示当前页面的载入进度
  Fox Splitter
  分屏浏览
  FoxClocks
  在状态栏显示时间
  Grab and drag
  通过抓手能够轻松移动网页
  FoxTab
  以3D方式切换标签
  Google Image Help
  查看谷歌全尺寸图片
  NextPlease
  自动识别当前网页的相关前后页,便于翻页
  NextPage
  在页尾处,空格键自动翻到下一页,有点类似opera的空格键翻页
  NetVideoHunter Video Downloader
  下载视频+独立窗口播放视频
  NoSquint
  缩放网页大小与调整页面颜色
  NoScript
  为您的Firefox 提供额外保护
  SearchWP
  高亮搜索关键词
  SearchPreview
  在Google、Yahoo 、Bing的搜索结果前插入预览图像
  Splash! (3.6 Update)
  给你的Firefox添加启动画面和声音
  Tab Scope
  通过弹出窗口预览和控制标签页
  TV Manager
  来自美国、法国、意大利的TV节目
  Omnibar
  地址栏搜索栏合二为一
  Organize Search Engines
  管理搜索引擎
  另附firefox的几个小技巧:
  1.屏蔽gif广告方法:在adblock plus里添加规则 http://*.gif
  2.设置全局禁止播放“.gif”动态图片,只显示其首帧, 来变相加快页面载入速度的方法:
  将 about:config 复制到地址栏后按回车
  →将 image.animation_mode 复制到过滤器一栏
  →双击搜索出来的“值”下面的normal (其中文含义为“正常”,作用为将火狐 浏览器设定为全局播放“.gif”动态图片模式,所有图 片都按
  照其本身的设置来决定循环播放的次数)
  →接下来,请根据你的实际需求,从下面的两个参数中选择一个,复制到“输入 字符串 的值”这个对话框中去:
  once
  (其中文含义为“一次”,就是在播放完一遍“.gif”动态图片中的内容后就强制停止,不进行循环播放)
  none
  (其中文含义为“从不”,就是强制禁止播放“.gif”动态图片中的内容,只显示其首帧的画面,等于是把“动画”当成静态图片来显示,我
  就选择了这个参数,因为这样一来,那些 广告动画也就不会“跳来跳去”了,整个页面也就不那么 “晃”眼了)
  →确定
  →修改完毕,按住Ctrl键,再按一次W键,关闭这个 about:config 首选项设置页面即可。
  3.关于Firefox地址栏谷歌搜索引擎的问题:
  在about:config中搜索
  1. keyword.URL
  改成
  为了避免谷歌的安全搜索,除了修改Google香港,可以考虑使用谷歌台湾和谷歌加拿大甚至谷歌新加坡的简体中文版即可,网址如下
  http://www.google.com.sg/
  http://www.google.ca/
  http://www.google.com.tw/
  碰到特殊的关键词被和谐那就没办法只能fanqiang了!
  4.Firefox-Portable Edition火狐便携版
  火狐的扩展是按需求来的,每个人的需求不一样装的扩展也完全不同,尽量少装一些扩展,毕竟扩展多了影响速度。
  我常用扩展也就那么几个:
  adblockplus
  all-in one Gestures
  Flashblock
  IEtabplus
  Quickdrag
  Tab utilites
我不喜欢说话却每天说最多的话,我不喜欢笑却总笑个不停,身边的每个人都说我的生活好快乐,于是我也就认为自己真的快乐。可是为什么我会在一大群朋友中突然地就沉默,为什么在人群中看到个相似的背影就难过,看见秋天树木疯狂地掉叶子我就忘记了说话,看见天色渐晚路上暖黄色的灯火就忘记了自己原来的方向。