FirefoxOverlay.xul
顾名思义,overlay就是覆盖的意思。我们已经看过FF默认的browser.xul文件了,那么可以理解在上一节中的chrome.manifest中overlay一行便是要用后者来覆盖前者的内容。
先看firefoxOverlay.xul文件:
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="chrome://huang/skin/overlay.css" type="text/css"?>
<!DOCTYPE overlay SYSTEM "chrome://huang/locale/huang.dtd">
<overlay id="huang-overlay"
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
<script src="overlay.js"/>
<stringbundleset id="stringbundleset">
<stringbundle id="huang-strings" src="chrome://huang/locale/huang.properties"/>
</stringbundleset>
<menupopup id="menu_ToolsPopup">
<menuitem id="huang-hello" label="&huang.label;"
oncommand="huang.onMenuItemCommand(event);"/>
</menupopup>
</overlay>
整段代码是被包在Overylay节点中的,其中的前两个节点在上一节中已经提到,script代表导入该js代码,StringBundleset则是用来添加stringbundle。
menupopup对于我们来说是个新鲜东西,可是从字面上我们还是可以猜测出它的用处,menu的弹出框。
既然是overlay,那么这段代码显然有相应的内容在browser.xul文件里面,而id则是用来标识将被overlay的节点的,果然在brwoser.xul中,我们也找到了ID名为menu_ToolsPopup的节点。 这样一来,这段代码的含义就显而易见了,很简单,在menu_ToolsPopup这个节点中增加一个名为menuitem的子节点,我相信label中的&符号表意是指从huang.properties中寻找这样一个value并作为label。oncomand大概就是时间处理吧。至于为什么是huang.为前缀呢?这个倒是没有明白,难道是应该我自己在哪个地方实现这个方法?最有可能的就是overlay.js文件了。不过我们还是接着往下看吧。
Overlay.js
果然,就在FirefoxOverlay.xul旁边,我们发现了Overlay.js:
var huang = {
onLoad: function() {
// initialization code
this.initialized = true;
this.strings = document.getElementById("huang-strings");
},
onMenuItemCommand: function(e) {
var promptService = Components.classes["@mozilla.org/embedcomp/prompt-service;1"].getService(Components.interfaces.nsIPromptService);
promptService.alert(window, this.strings.getString("helloMessageTitle"), this.strings.getString("helloMessage"));
},
};
window.addEventListener("load", function(e) { huang.onLoad(e); }, false);
正如我们之前所猜想的,overlay.js文件中包含了onMenuItemCommand方法。
这个方法倒也简单,先获取一个服务类,然后这个服务类弹出一个对话框。 至于这个类到底是个什么东东,我估计不外乎是ff自己提供的一些服务。 有意思的是对话框中这一段:this.strings.getString("helloMessageTitle")。 我觉得应该还是从某个地方获取值,但是this.strings究竟是什么东西呢?
在onLoad函数里面,似乎给了我们一些解释。 但是不明确,还是接着往下看吧。
locale
locale文件夹下只有一个子文件en-US,打开之后有两个文件,huang.properties和huang.dtd。两者都很好理解,而且我们发现huang.properties 文件中的内容跟this.strings里面的一样,那么,我们就可以认为document.getElementById("huang-strings"),通过locale,获取了正确的properties文件。虽然目前我们还不知道具体是什么原因。
再回头看FirefoxOverlay.xul文件:
<stringbundleset id="stringbundleset">
<stringbundle id="huang-strings" src="chrome://huang/locale/huang.properties"/>
原来是从这里获得的。
Skin文件夹里面的东西就比较简单了,就是一个css文件。
/* This is just an example. You shouldn't do this. */
#huang-hello
{
color: red ! important;
}
分享到:
相关推荐
在Firefox扩展开发中,这可能表现为在浏览器的工具栏上添加一个按钮,点击后会在浏览器的页面上显示一条简单的问候信息。 Firefox扩展的核心组件包括以下几个部分: 1. **manifest.json**:这是扩展的元数据文件,...
本示例将带你深入理解Firefox扩展开发,包括如何创建、配置和发布一个扩展。 首先,我们需要了解Firefox扩展的基本结构。一个标准的Firefox扩展通常包含以下几个部分: 1. **manifest.json**:这是扩展的核心文件...
- 当扩展开发完成后,需要将其打包成XPI文件,进行签名验证,然后可以在Firefox附加组件网站或其他平台发布。 7. **持续学习和资源**: - 提到的博客文章提供了额外的开发技巧和注意事项,如CSDN上的文章,可以...
火狐浏览器(Firefox)是一款由Mozilla开发的开源网络浏览器,以其强大的安全性、隐私保护和定制性而受到全球用户的喜爱。在火狐浏览器的发展过程中,它不断进行更新和优化,以适应互联网技术的进步和用户需求的变化...
Firefox扩展开发是一个面向开发者的技术,它允许用户自定义和增强Firefox浏览器的功能。本文将深入探讨Firefox扩展开发的各个方面,从基础结构到核心组件,帮助开发者理解如何构建自己的Firefox扩展。 首先,一个...
XPI全称为"eXtension Package Installer",是Firefox浏览器用来安装扩展的一种打包格式。Homezilla.xpi文件就是一个典型的XPI文件,包含了Homezilla扩展的所有代码和资源。安装时,用户只需下载此文件并拖放到火狐...
Firefox火狐浏览器,由Mozilla基金会开发,是一款开源、免费的网络浏览器,以其强大的安全性、隐私保护和高度可定制性著称。本资源是Firefox的2.0.0.20-win32版本,专为32位Windows系统设计,提供了稳定、高效的浏览...
Firefox扩展(Extension)开发是为Mozilla Firefox浏览器定制功能或改变其外观的一种技术。这个压缩包包含的文件是创建Firefox扩展的基础组件。 1. **chrome.manifest**:这是Firefox扩展的核心配置文件之一,它...
2. **WebExtensions**:一种通用的跨浏览器扩展开发框架,使得 Firefox、Chrome 和 Safari 等浏览器的扩展可以共享大部分代码。 3. **Addon SDK**:虽然不再推荐使用,但对于初学者来说,其提供了更简单的 API 和...
2. “fireftp-1.0.9-fx.xpi”是一个Firefox扩展文件,XPI是“Cross Platform Installer”的缩写。FireFTP是Firefox的一款FTP客户端插件,版本1.0.9,它允许用户通过浏览器直接安全地上传和下载文件到FTP服务器。安装...
### Firefox扩展开发技巧详解 Firefox 是一款非常受欢迎的开源浏览器,因其高度的可定制性和丰富的扩展功能而备受用户青睐。本文旨在深入解析 Firefox 扩展开发的基础知识与实用技巧,帮助开发者快速上手并掌握核心...
Mozilla和Firefox扩展开发是Web开发领域的一个重要分支,它允许开发者为火狐浏览器定制功能,增强用户体验或提供特定服务。本文将深入探讨Mozilla扩展的基本概念、开发环境搭建、API使用以及实战示例。 一、Mozilla...
标签“火狐”、“firefox”和“firebug”是对这个压缩包内容的关键词标注,便于搜索和理解其主要内容。同时,“nightly”表明了Firefox的开发状态。 压缩包内的文件名: 1. "firebug-1.9.0a4.xpi" 是Firebug插件的...
《Firefox火狐浏览器51.0b2-win32版本:深入解析与使用指南》 Firefox,这款由Mozilla基金会开发的开源网络浏览器,以其强大的安全性能、高度的可定制性和出色的隐私保护机制,在全球范围内拥有大量的忠实用户。...
综上所述,"Firefox扩展插件制作小综合"这个主题涵盖了从基础的JavaScript编程到高级的Firefox扩展开发技巧。通过学习这些内容,开发者不仅可以创建自定义的浏览器插件,还能深入了解浏览器的工作原理,提升自身的...
值得注意的是,Firefox在不断推进WebExtensions标准,这是一种基于Chrome扩展模型的API,旨在为所有现代浏览器提供统一的扩展开发平台。这意味着未来大部分插件将采用WebExtensions进行开发,以提高兼容性和安全性。...
《Firefox扩展编程手册》是一本深入探讨Firefox浏览器扩展开发的专业教程,主要面向对Web技术和Firefox扩展感兴趣的开发者。这本书英文版提供了全面的指南,涵盖了从环境搭建到扩展分发的整个流程,帮助开发者们掌握...
Firefox火狐浏览器,由Mozilla基金会开发,是一款开源、免费的网络浏览器,以其强大的安全性、隐私保护和高度可定制性著称。本篇文章将深入探讨Firefox 45.0b2-win64版本的安装包,为用户带来详尽的使用指南。 首先...
标题中的"Firefox-Setup-8.0.zip"指的是火狐浏览器(Firefox)的一个安装程序压缩包,版本为8.0。这个压缩文件是Mozilla Firefox的早期版本,它被压缩以便于下载和分发。接下来,我们将深入探讨Firefox浏览器、其安装...
火狐浏览器(Mozilla Firefox)是一款由Mozilla基金会和志愿者共同开发的开源网络浏览器,以其高度定制性、安全性和性能而受到用户欢迎。以下是一份描述: 火狐浏览器是一款跨平台的开源网络浏览器,由Mozilla基金...