Firefox 3.0 扩展代码中使用 API技巧

Firefox扩展开发与实战指南 Firefox扩展Firefox Add-ons)是一种基于JavaScript、XUL、CSS等技术构建的浏览器插件,允许开发者对浏览器功能进行增强与定制。其核心机制是通过注册特定的配置文件(如和),将扩展资源集成进浏览器界面并赋予其访问底层API的能力。扩展的应用场景极为广泛,包括但不限于:个性化定制:修改浏览器界面、添加快捷功能按钮。安全增强:实现广告拦截、脚本过滤、隐私保护等功能。效率工具:如笔记记录、页面翻译、快捷搜索等辅助工具 阅读详情
即将发布的 Firefox 3.0 内置了对微格式的支持,可通过 Firefox 扩展访问这种 API。这篇技巧通过一个简单的例子说明如何在扩展代码中使用这种 API。我们从一个简单的 Hello World 扩展开始,使它能够存储来自任何网页的 hCard,然后利用存储的 hCard 填充 Web 表单。

阅读这篇技巧文章需要对 Firefox 的扩展机制有所了解。所幸的是,如果编写过 JavaScript 和 HTML,基本上就掌握了需要的知识。开发扩展的有关说明请参阅文章后面的 参考资料。本文只涉及到基本的东西。还需要用到 Firefox 3.0,撰写本文的时候这个版本还没有发布。如果没有安装的话,请下载最新发布的候选版本或者日构建(night build)版本。如果希望避免影响到已有的 Firefox 配置文件,可以设置单独的配置文件用于开发。关于如何在 Mozilla Developer Center 上建立扩展开发环境的详细说明请参阅参考资料

建立扩展框架

经常用到的缩写词
  • API:应用程序编程接口
  • HTML:超文本标记语言
  • UI:用户界面
  • XML:可扩展标记语言
  • XUL:XML 用户界面语言

我们将使用扩展向导构建基本的结构。可以 下载 我生成的文件。请下载并把文件解压到工作目录中。

接下来并不是构建扩展并安装,而是把工作目录映射到 Firefox 扩展文件夹。创建文本文件 hcardformfiller@rob.crowther 并将其放到工作目录的扩展文件路径(如清单 1 所示)。然后将该文件保存到开发配置指定的扩展目录下,本例中为 /home/robert/.mozilla/firefox/r6z6s4yl.default30/extensions(详见 Mozillazine 知识库)。

清单 1. hcardformfiller@rob.crowther 文件
                
/home/robert/code/xpcom/hcardformfiller

完成后使用 清单 1 中的脚本重新启动 Firefox 开发版。扩展应该已经安装,并且能够访问默认的 Hello World 元素。

回页首

添加 UI 元素

因为希望用户能够触发扩展功能,还需要提供两个工具栏按钮。添加工具栏按钮需要在 XUL 覆盖层中进行描述。打开文件 hcardformfiller/content/firefoxOverlay.xul 并用清单 2 中的代码替换。

清单 2. firefoxOverlay.xul 文件
                
<?xml-stylesheet href="chrome://hcardformfiller/skin/overlay.css" 
 type="text/css"?>
<!DOCTYPE overlay SYSTEM "chrome://hcardformfiller/locale/hcardformfiller.dtd">
<overlay id="hcardformfiller-overlay"
 xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
 <script src="overlay.js"/>
 <stringbundleset id="stringbundleset">
 <stringbundle id="hcardformfiller-strings" 
src="chrome://hcardformfiller/locale/hcardformfiller.properties"/>
 </stringbundleset>
 <toolbarpalette id="BrowserToolbarPalette">
 <toolbarbutton id="hcardformfiller-toolbar-button-grab"
 image="chrome://hcardformfiller/content/hcardformfiller16.png"
 label="&hcardformfillerToolbar.grabLabel;"
 tooltiptext="&hcardformfillerToolbar.grabTooltip;"
 oncommand="hcardformfiller.onToolbarButtonGrabCommand()"
 class="toolbarbutton-1 chromeclass-toolbar-additional"/>
 <toolbarbutton id="hcardformfiller-toolbar-button-paste"
 image="chrome://hcardformfiller/content/hcardformfiller16.png"
 label="&hcardformfillerToolbar.pasteLabel;"
 tooltiptext="&hcardformfillerToolbar.pasteTooltip;"
 oncommand="hcardformfiller.onToolbarButtonPasteCommand()"
 class="toolbarbutton-1 chromeclass-toolbar-additional"/>
 </toolbarpalette>
</overlay>

清单 2 提供了两个工具栏按钮:Grab 和 Paste。为使用方便,两者使用了相同的图标 hcardformfiller.png,可在 下载 文件中找到。现在保存并重新启动 Firefox,如果右键单击这两个按钮并选择 Customize,就可以将它们放到导航工具栏上。图 1 显示了最后得到的结果。

图 1. 增加的工具栏按钮

本文转自IBM Developerworks中国

        请点击此处查看全文

 

探索Firefox 91.3.0esr-mac:安全、稳定与高效浏览体验 Firefox 提供了丰富的选项,让用户可以根据个人喜好自定义浏览器的外观。用户可以通过访问页面进入设置界面进行调整。更换主题是一个简单的过程,用户只需选择“常规”标签页下的“外观”部分,点击“主题”按钮,然后从弹出的主题管理器中选择一个自己喜欢的主题。主题更换后,浏览器的窗口颜色、按钮样式等都会相应改变。为了进一步个性化外观,Firefox 还允许用户调整工具栏按钮的大小、设置侧边栏的位置等。通过这些设置,用户可以打造一个符合自己使用习惯的界面。快捷键是提高效率的利器。 阅读详情

相关推荐

火狐浏览器源码

火狐浏览器源代码,适合研究浏览器、插件等

通过火狐谋智查询API

谋 智中文版网址 https://developer.mozilla.org 1.如何从https://developer.mozilla.org上查询对象的属性、方法、事件使用说明和示例? 第一步:再浏览器搜索框中搜索site: developer.mozilla.org window 点击图中的2步骤 ,打开后,如下: 这里有window的方法、属性和事件(event...

weixin_30299709的博客 374

VeryPDFPDFFormFiller(PDF表单填充工具)V3.1官方安装版

VeryPDF PDF Form Filler 是专为商业用户开发的自动填表工具,无需专业的PDF编辑器软件即可轻松填写交互式PDF表单。它支持填写表单项,如文本、复选框、单选按钮、组合框和列表框字段。此应用程序还支持将表单数据导出或导入到或表单数据格式(FDF)和XML文件。用户可以保存已填充的PDF表单,以用加密覆盖原始的PDF文件或新的PDF文件。 【功能特点】   编辑各种表单项

Firefox容器API开发指南:如何扩展容器功能的完整教程

Firefox多账户容器(Multi-Account Containers)是Firefox浏览器中一项强大的隐私保护功能,它允许开发者通过容器API创建、管理和扩展容器功能。本文将为您提供完整的Firefox容器API开发指南,帮助您理解如何利用这些API扩展容器功能。 ## 🔍 什么是Firefox容器APIFirefox容器API是一组WebExtensions API,允许开发者

gitblog_00166的博客 914

firefox NPAPI 插件开发(c++)(一)

firefox NPAPI 插件开发(c++)(一) - dragoo747450的日志 - 网易博客   2012-07-11 22:23:00|  分类: 点点滴滴 |  标签: |字号大中小 订阅 1.创建1Win32 控制台应用程序,应用程序类型为DLL,附加选项为空项目 2.项目-》右键-》配置属性-》常规-》字符集-》使用多字节字符集 3.复制sdk

720

Firefox 将迎大升级:采用全新插件API

很快Firefox又要迎来一次巨大的升级,本次更新需要插件开发者对插件进行修改,这样才能继续在新版Firefox上运行。以后Firefox将采用 了新的插件API,名叫WebExtensions,和Chrome与Opera的系统类似,这样跨多个浏览器进行插件开发也就容易多了。 开发者需要对现有插件做出改动,才能确保在新版Firefox中可继续正常运行。首先自9月22日Firefox 41发布之日...

p312011150的博客 756

firefox浏览器接口调试工具

之前做接口开发调试接口一直用的是chrome+postman,后来不知道为啥电脑出了故障,谷歌浏览器不能用了。打算用firefox,对firefox调试接口工具总一个简单总结: 1.HttpRequester 点击火狐浏览器右上角的打开菜单,然后在添加附件里面搜‘HttpRequester’,然后安装,按住后重启:

wangyibo5843的专栏 5011

puppeteer-firefox 开启扩展

puppeteer-firefox安装扩展 puppeteer-firefox 目前已经有许多人在投入开发工作,但是和chrome的launch打开扩展api不一致,在chrome中,我们可以很容易配置参数就可以打开插件,但是在firefox中我们要使用web-ext 去启动firefox并且使用connect去连接。 官方issue Current tip-of-tree status of ...

godtoy的逆向小屋 1756

firefox-scripts深度教程:如何编写自定义userChromeJS脚本来扩展Firefox功能

Firefox是一款高度可定制的浏览器,而userChromeJS脚本是扩展其功能的强大方式。通过firefox-scripts项目,即使是普通用户也能轻松编写自定义脚本,实现从界面美化到功能增强的各种需求。本教程将带你从零开始,掌握userChromeJS脚本的编写方法,让你的Firefox浏览器真正个性化。 ## 什么是userChromeJS?为什么选择它? userChromeJS是一

gitblog_00356的博客 1025

使用 Firefox 3.0 Extensions 中新的微格式 API

即将发布的 Firefox 3.0 内置了对微格式的支持,可通过 Firefox 扩展访问这种 API。这篇技巧通过一个简单的例子说明如何在扩展代码使用这种 API。我们从一个简单的 Hello World 扩展开始,使它能够存储来自任何网页的 hCard,然后利用存储的 hCard 填充 Web 表单。 阅读这篇技巧文章需要对 Firefox...

weixin_33873846的博客 130

Dimensions扩展的跨浏览器兼容性解决方案:ChromeFirefox适配技巧

Dimensions是一款专为设计师打造的屏幕尺寸测量工具,作为浏览器扩展,它能帮助用户精准测量网页元素尺寸。本文将分享如何解决Dimensions扩展ChromeFirefox浏览器中的兼容性问题,提供实用的适配技巧,让这款工具在不同浏览器中都能稳定高效地运行。 ## 了解Dimensions扩展的核心功能 Dimensions扩展的核心功能是提供直观的屏幕尺寸测量体验。通过简单的操作,

gitblog_00593的博客 375

HLS-Downloader 5.0重磅更新:全面支持Firefox浏览器,XPI扩展无缝体验

你是否曾在Firefox浏览器中遇到HLS流媒体无法下载的窘境?作为Web开发者,你是否因扩展兼容性问题而被迫在多浏览器间切换?HLS-Downloader 5.0版本带来突破性进展,正式推出Firefox专用XPI扩展,彻底终结"Chrome专属"时代。本文将深入解析这一跨浏览器支持的实现原理、技术细节与最佳实践,让你5分钟内掌握Firefox环境下的HLS下载全流程。 ## ???? 读完本文你...

gitblog_07277的博客 1024

firefox使用restclient调试api接口

#纯操作使用类型 #请看视频更快速更清楚 foxfire使用restclient调试api接口

wnw001的博客 459

Firefox插件(拓展)开发

JavaScript编写插件时,通常分为以下几个脚本:1.:用于操作网页内容,可以访问DOM和页面元素,可以修改页面样式和行为,与页面共享同一个JavaScript环境。2.:用于处理插件的后台任务,例如处理网络请求、管理插件状态、与其他插件通信等,与页面不共享JavaScript环境。3.:用于处理插件弹出窗口的交互逻辑,例如响应用户点击事件、发送消息给后台脚本等。4.:用于处理插件选项页面的交互逻辑,例如保存用户设置、发送消息给后台脚本等。

@zhujj_的博客 9725

Firefox插件(plugins)开发实用指南

Firefox插件可实现强大功能,但其中麻烦事情不少。写这个实用指南首先是为了方便自己记忆,免得以后再次栽倒一些坑里面,如果能帮助其他人,则是更好。这个指南不是为了手把手教读者开发插件,而是作为一个FAQ,解决各种诡异问题 。 Firefox拥有众多的扩展(Extension),开发扩展也非常容易,不过有一些事情还是无法用扩展解决,需要访问操作系统的底层功能,这就需要写插件(plugins)。...

xiangxingchina 721

firefox 扩展开发技巧

目录结构: chrome.mainfest        // 定义整个扩展的目录结构 install.rdf        // 定义扩展的ID,名称等等信息 chrome/ chrome/content/        // 定义扩展界面(.xul文件),定义扩展界面实现功能的逻辑(.js文件) chrome/skin/        // 定义扩展界面上用到的图片,属性风格,皮肤

Yuan_Flysky的专栏 1033
上一篇: 加速 Ajax,避开 Web 服务漏洞
下一篇: 剖析 Linux 内核系列大全
ibmjournal
博客等级 码龄20年 66粉丝 1091原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值