首页 > 火狐拓展开发 基础知识

火狐拓展开发 基础知识

平时经常碰到一些零碎的知识,或者其他什么好文章/知识点/插件/库等等,因为实在太多书签已插乱...于是想着干脆写个火狐小add-on。

首先找到了这里ADD-ON SDK:

Using the Add-on SDK you can create Firefox add-ons using standard Web technologies: JavaScript, HTML, and CSS. The SDK includes JavaScript APIs which you can use to create add-ons, and tools for creating, running, testing, and packaging add-ons.

使用Add-on SDK你可以用标准的web技术——javascript,html,css开发火狐add-ons。SDK包含了js API,供你创建add-ons,以及创建、运行、测试、打包add-on的工具(即cfx命令行,cfx run,cfx test,cfx xpi等)。

开发小组件(add-on,附件组件)过程中发现仅使用js,html,能够完成的功能有限,尤其没有办法直接使用火狐的一些默认用户界面,右键菜单(反正我是还没有找到调用方法)。结果自己用html拼了一个出来,虽说其他一些图形界面也能够写出来,但有点绕了远路的感觉。做个小东西自己用用的话,差不多可以,但想增加一些比较高级(?)的功能的话会比较困难。以下是正文,火狐拓展开发介绍。

知识均来源于XUL|MDN。主要是一些概念的介绍。

 

Firefox and other Mozilla applications can be seen as composed of two different parts: a user interface layer that is distinct for each project, and a common platform on top of which the interface layer is built. The user interface is built with technology known as XUL, and the platform is known as XULRunner.

火狐以及其他MOzilla应用可以看作是由两个部分组成:用户界面层——每个项目各不相同,以及一个共同的平台,界面均建立于它之上。用户界面使用XUL技术,平台则为XULRunner.

 

在介绍XUL与XULRunner之前,先了解一下add-on(附加组件)和extension(拓展)的区别:

An extension is a small application that adds something new to one or more Mozilla applications.

所有拓展都是附加组件,但附加组件也可以是主题、插件、或是语言包等。XUL教程主要讲的是关于拓展开发,而主题、语言包的开发与它十分相似。而插件则完全不同,在教程里不会提到。

Extensions now exist in 3 different forms: Add-ons SDK extensions (also known as Jetpacks), bootstrapped extensions and traditional extensions. If you're only getting started developing add-ons, the Add-ons SDK provides a great way to quickly create simple ones and build on them. This tutorial focuses on traditional extensions, which are created differently. Bootstrapped extensions are a step above traditional ones in complexity, so you should go through this tutorial before giving them a try.

拓展现在有三种形式:Add-ons SDK 拓展、bootstrapped拓展以及传统拓展。如果你是刚刚开始开发组件,add-on SDk提供了快速开发简单组件的方法。XUL教程主要关注传统拓展的开发,这也将相对比较复杂。bootstrapped拓展在难度上将更上一层,在尝试之前,建议先看完此教程。

 

大致就是这么一回事了。

 

XUL(XML User Interface Language):Mozilla用于创建类似firefox之类应用的用户界面 的基于XML的语言。

XUL十分强大。在用html边看教程边写代码时遇到的问题,XUL轻轻松松就解决了。

比如:

 

比如:drag and drop

被拖拽元素的一个半透明的表现将随着鼠标移动。放置(drop)位置可以是另外一个应用。可以设置拖动时显示的图片,拖动效果:被拖动元素是copy/move/link.

 

也就是说平时用到的效果基本都能自己调用~提供了很多command,右键菜单写个

,加上事件就好,一些默认事件可以调用cmd,cmd_copy,cmd_paste等。参见List of Commands.

 

顺便说下add-on sdk.

开发语言:html,js,css,以及sdk提供的接口。

开发方法:限于目前我的了解。

主要文件:main.js.负责运行add-on的主脚本语言。

 负责与html/panel/widget等页面内容交互的脚本。比如访问打开的html页面,一般需建一个page-mod对象。通过该对象与其对应的contentScriptFile:XX.js,之间通信(sdk提供的通信接口),来实现与页面的交互。widget,panel同理。

 

以上。

转载于:https://www.cnblogs.com/cydin/p/3353196.html

更多相关:

  • 项目目前选型是前后端分离开发,其中前端使用 AntDesign pro。根据和一线工程师沟通,引入 mock 技术搭建 json-server,可以快速模拟调用后端接口,实现增删查改以及复杂的业务逻辑。不用等后端开发完毕,配合 rap2 接口管理系统,前后端统一约束,而且前端不用手工造数:可以从配置好正则的接口生成(来自 rap2 接...

  • MP4 |视频:h264,1280×720 |音频:AAC,44.1 KHz,2 Ch 语言:英语+中英文字幕(根据原英文字幕机译更准确) |时长:27场讲座(4h 19m) |大小解压后:2.35 GB Unity 2D游戏开发终极指南 你会学到: 学习使用Unity TileMap绘制您的世界 掌握初学者C#概念,包括sin...

  • 大二快结束,从大二初开始接触项目的工程开发,到现在也差不多一年了。之前一直在用c# 结合winform开发一些简单的桌面应用,也看过一些是实验室学长们用c#和其他多种技术结合 开发出来的系统, 接触过其源代码,为深入了解也曾阅读过试着了解内部实现的机制。在进行项目开发之前,带着我们的学长一直在和我们强调编程规范的重要性,并且给我们分析...

  • 开发板是开发和学习嵌入式技术的主要硬件设备,开发板的型号和种类很多,目前流行的是基于S3C6410 ARM11架构的开发板,S3C6410是由三星公司推出的一款低功耗,高性价比的RISC处理器,它基于ARM11内核,可广泛应用于移动电话和通妖魔化处理等领域。OK6410开发板基于三星公司最新的ARM11处理器S3C6410,拥有强大...

  •       最后这几章感觉上更多是从软件完成整体上来讲的。比如说技术、方法等。       在我看来,其实一个团队一直坚持一种好的、先进的方法是不可少的。如果一个优秀的团队刚愎自用,只随着成员们喜好发展,那不能长久。比如说,在开发软件工程课程的大项目时,我们团队也在学习着敏捷开发方法,虽然我们没有严格按照它的形式或流程,但是我们运用了...

  • 分享SLAM包含了两个主要的任务:定位与构图,在移动机器人或者自动驾驶中,这是一个十分重要的问题:机器人要精确的移动,就必须要有一个环境的地图,那么要构建环境的地图就需要知道机器人的位置。本系列文章主要分成四个部分:在第一部分中,将介绍Lidar SLAM,包括Lidar传感器,开源Lidar SLAM系统,Lidar中的深度学习以...

  • 参观临时城市中心 想象一下新兴的后世界末日城市中心,这里有大量的临时住所、建筑群、小屋、道具和固定装置。用一系列非常详细的废弃街区快速构建您的场景,并用波纹铁、水箱、折叠椅和劣质电线进一步修饰它们。从足球场到摇摇欲坠的码头,每一个摇摇欲坠的单元都制作独特,可以无限定制。 大小解压后:4.29G 格式:FBX 含贴图素材 模型...

  • 6、TEXT PROCESSING SERVICES :文本处理服务 6.1、re 8、DATA TYPES : 数据类型 8.1、datetime 8.2、collections 8.3、copy 9、 NUMERIC AND MATHEMATICAL MODULES : 数字和数学模块 9.1、random 10、FUNCTIO...

  • Start the computer and start pressing F1 and get into set up. In setup press F9 for default settings and press F10 for svae and exit. Problem solved. 转载于:https://www...

  • 响应式布局简明示例,响应式布局最好同时也是自适应布局,然后再配合css3媒体查询,来达到完美的响应式布局。css3的媒体查询ie9一下是不支持的,这太遗憾了,不过幸运的是有大神已经为前端屌丝们写好了用于IE9以下的媒体查询脚本文件,引用方式如下: