基于 Mozilla 的扩展开发

合集下载

最值得投资学习的10大新编程语言

最值得投资学习的10大新编程语言

最值得投资学习的10大新编程语言随着科技的发展和社会的进步,编程语言也在不断地更新和演进。

对于程序员来说,学习新的编程语言可以帮助他们在技术领域保持竞争力,并且拥有更多的职业发展机会。

本文将介绍10种最值得投资学习的新编程语言,并分析其优势和适用场景。

1. RustRust是一种由Mozilla开发的系统编程语言,以安全和并发性能著称。

它具有内存安全和线程安全的特性,能够帮助开发者编写安全的高性能代码。

Rust适用于系统级编程和嵌入式设备开发等领域。

2. KotlinKotlin是一种基于Java虚拟机的静态类型编程语言,由JetBrains开发。

它具有简洁易读的语法和强大的类型推导能力,使得开发者可以更加高效地编写代码。

Kotlin在Android开发中得到广泛应用,可以替代Java进行Android应用开发。

3. SwiftSwift是由苹果公司推出的用于开发iOS和其他苹果平台应用的编程语言。

它具有简洁易懂的语法和强大的安全性能,使得开发者能够更加轻松地创建高质量的应用。

Swift在苹果开发者社区中得到广泛认可和使用。

4. GoGo是由Google开发的一种编译型静态语言,以其高效性能和并发能力而闻名。

Go的设计目标是提供一种简单易用的编程语言,适用于大规模的系统开发和服务器端应用。

因此,Go在云计算和分布式系统领域有广泛的应用。

5. TypeScriptTypeScript是由微软开发的一种静态类型脚本语言,它是JavaScript的超集。

TypeScript提供了类型检查和面向对象编程的特性,使得开发者可以更加规范和高效地开发JavaScript应用。

TypeScript在前端开发中得到广泛应用,特别适用于大型项目的开发。

6. JuliaJulia是一种高性能的动态编程语言,专注于科学计算和数据分析。

它具有优秀的性能和丰富的数学库,能够帮助开发者处理复杂的科学计算问题。

Julia在科学研究领域和金融行业等领域有广泛的应用。

firefox插件开发

firefox插件开发

本文部分教程是参考Firefox 的MDN一些开发文档,文章结尾的参考资料中附带一些文档;在Gecko 2.0 之前只能使用Overlay Extension这种技术进行扩展开发,现在有一种新的开发方式可以基于Add-On SDK进行开发,本文只对插件项目使用到的一些Add-On开发技术做一些简单的讲解,不涉及到Overlay Extension开发,若有兴趣可以自行参考文章结尾。

1. 安装python2.5、2.6或者2.7,3.X不支持,将Python的路径加入到环境变量PATH中。

2. Firefox3. 安装Add-On SDK。

4. 启动命令行,到sdk root 目录下,运行激活命令bin\active5. 可以看到命令提示符现在应该有一个包含SDK的根目录名称的新的前缀:(C:\Users\mozilla\sdk\addon-sdk) C:\Users\Work\sdk\addon-sdk>在shell提示符运行: cfx它会产生下面信息,这里是第一行内容,后面是大量的使用信息:Usage: cfx [options] [command]这是CFX命令行程序,是主界面加载项的SDK,可以使用它来启动Firefox和测试插件,打包附加分发,查看文档和运行单元测试。

cfx 的详细说明文档:https:///en-US/Add-ons/SDK/Tools/cfx原文档如下:https:///en-US/Add-ons/SDK/Tutorials/Getting_started总结起来就是3步:1. 创建文文件夹:mkdir my-addon1. 2. 运行如下命令cd my-addoncfx init得到如下输出:* lib directory created* data directory created* test directory created* doc directory created* README.md written* package.json written* test/test-main.js written* lib/main.js written* doc/main.md writtenYour sample add-on is now ready for testing:try "cfx test" and then "cfx run". Have fun!"1. 3. 运行cfx run可以运行该Add-On。

Firefox的24款Web开发插件

Firefox的24款Web开发插件

用来武装Firefox的24款Web开发插件俗话说,“工欲善其事,必先利其器”。

对于前端开发工程师来说,基于Firefox丰富的Web 开发辅助插件无疑就是最好的利器。

下面就与大家分享24款武装Firefox的Web开发插件。

开发工具1.Web Developer1.1.8以工具栏的形式对网页的(X)HTML、脚本、多媒体、CSS、缓存、图象等多方面的实用工具。

使我们能轻易的获得网页的更多信息,使我们进一步的了解当前所浏览的网页。

说明:超强的web分析工具,开发人员必装。

2.Firebug1.5.0Firebug是firefox下的一个插件,能够调试所有网站语言,如Html,Css等,但FireBug最吸引我的就是javascript调试功能,使用起来非常方便,而且在各种浏览器下都能使用(IE,Firefox,Opera,Safari),简直难以置信。

除此之外,其他功能还很强大。

比如html,css,dom 的察看与调试,网站整体分析等等。

总之就是一整套完整而强大的WEB开发工具。

说明:查看,编辑,Debug页面的CSS,HTML,JavaScript。

超强的开发调试的工具,开发人员必装。

3.LinrLightWeb0.2.1安装前,请确认您已安装Firebug插件,获取Firebug请访问:/1.开启网页编辑模式,随意编辑网页——Fiddler的好搭档;2.超强Selector,查找操作标记;3.刷新CSS,无需刷新整页;4.快速设置CSS Sprites背景,鼠标拖移即可得到位置;5.保持登录状态,Session不过期;禁用6.同步发行IE版,Chrome版。

说明:非常强的web开发工具。

Source Char2.74.ViewViewSource画一个Color-Coded的图表的Web页的源代码。

说明:显示非常好看的源码,分级缩进,不同颜色区分。

5.Tamper Data11.0.0Tamper Data的真实含义,即“篡改数据”(或者说定制HTTP请求):截取浏览器发出的每一个HTTP请求,提示我们选择是要进行定制,还是不做定制而直接提交请求,还是终止当前被截取的请求,然后根据我们的选择决定是打开定制窗口,还是直接向WEB服务器提交请求,还是终止当前的请求。

ext教程

ext教程

ext教程EXT(JavaScript Extensions)是一种用于制作浏览器扩展的标准,它允许开发者以交互式方式修改和自定义Web页面的行为和外观。

在本教程中,我们将介绍如何使用EXT来开发浏览器扩展。

我们将涵盖EXT的基本概念、开发环境的设置、常用API的使用以及实例应用的创建。

首先,我们需要了解EXT的基本概念。

EXT是基于JavaScript 和HTML的,它允许我们通过注入代码来修改Web页面的行为。

我们可以使用EXT来添加自定义按钮、修改页面样式、拦截网络请求等。

为了开始开发EXT扩展,我们需要设置开发环境。

首先,我们需要安装一个支持EXT的浏览器,如Google Chrome或Mozilla Firefox。

然后,我们需要安装开发者工具,如Chrome开发者工具或Firefox开发者工具。

接下来,我们将介绍EXT的常用API。

EXT提供了一组API,用于访问和修改Web页面的各个部分。

例如,我们可以使用API来找到页面上的特定元素,修改其样式或内容。

我们还可以使用API来发送网络请求或拦截已有的请求。

最后,我们将创建一个实例应用来演示EXT的使用。

我们将开发一个简单的扩展,用于在Facebook页面上添加一个自定义按钮。

当用户点击按钮时,它会向后台服务器发送一个请求,并显示返回的数据。

在这个实例应用中,我们将演示如何创建一个扩展程序,并在Manifest文件中指定其基本属性。

我们还将展示如何使用Content Script来注入我们的代码到页面中,并使用Popup来创建一个显示在浏览器窗口中的弹出窗口。

通过这个教程,您将学习到EXT的基本概念、开发环境的设置、常用API的使用以及实例应用的创建。

您将了解如何使用EXT来修改和自定义Web页面的行为和外观。

这将对您开发具有定制功能的浏览器扩展非常有帮助。

总结来说,EXT是一种用于制作浏览器扩展的标准,它允许开发者以交互式方式修改和自定义Web页面的行为和外观。

XPCOM学习开发文档

XPCOM学习开发文档

XPCOM学习开发文档XPCOM学习开发文档XPCOM开发学习文档陈彦旭2009-3-30目录1Mozilla的架构设计1.1分离界面和实现我们知道,用户界面是最容易变化的,也是最难于自动测试的,分离用户界面和内部逻辑是设计的主要目标之一。

在这一方面,mozilla算是非常前卫了:用标记语言(XUL)开发界面,用编程语言来实现(C++)内部逻辑,再用脚本语言(javascript)把两者胶合起来。

XUL的界面描述能力,javascript的简洁性和C++的性能完美的结合在一起了,mozilla把三者的长处发挥到了极致。

它们的关系如下图所示:o XUL这是一种用XML来描述用户界面的语言。

用XML描述用户界面已经不是什么新鲜事了,像Qt designer和Glade都是用XML文件格式来存放用户界面描述的,但它们都只是纯粹的界面描述。

而XUL同时描述了事件处理、风格(style)和字符串国际化等信息,可以直接被mozilla layout引擎解析执行。

o XBL这种称为扩展绑定语言(Extensible Binding Language)的东东也是mozilla的一大特色,现在已经被W3C作为标准了。

作为程序员,我们都知道公共函数库的重要性,公共函数库可以反复重用,从而提高开发效率。

在开发用户界面时,也会遇到同样的问题,很多界面都比较类似,拷贝/粘贴当然很容易,但以后维护起来就麻烦了。

而XUL并没有提供重用机制,XBL刚好弥补了它的不足。

在XUL中可以只描述具有共性的部分,而由XBL对它进行扩展。

XBL 的功能强大,自身也有组合和继承机制,这大大提高了可重用性。

o CSS我们知道Cascading Style Sheets在网页中已经应用多年了,而在浏览器本身实现中使用倒是很少听说。

这也没有什么奇怪的,像GTK+中的RC和CSS功能都差不多,也就是说GNOME应用程序一直都在使用类似于CSS的东西。

Firefox Chrome插件、扩展的区别

Firefox Chrome插件、扩展的区别

插件(plugins)、扩展(extensions)与主题(themes)和语言包(languages)都是附加组件(Add-ons)不同种类。

插件与扩展是完全不同的东西。

Firefox:插件与扩展插件(Plugins/Plug-ins):它通常是第三方应用程序提供给firefox使用的二进制文件。

也就是说第三方应用程序把相关功能编译成了二进制的机器指令提供给各类浏览器,方便它们调用。

Firefox需要显示某些自身并不能显示的特定文件类型的时候,就会调用与之相关的第三方应用程序提供给firefox的插件来显示它。

插件的作用也在于此。

windows下的firefox插件通常是dll格式,linux下的通常是so格式。

例如,Adobe提供给firefox的插件“Adobe reader”使其能直接在浏览器里显示网络上的pdf 文档,而Adobe提供给firefox的另一个插件“Adobe shockwave flash”则使其能显示网页中嵌入的flash。

Microsoft提供的“Windows media player firefox plugin”使firefox能播放网页中嵌入的windows媒体(wmv、wma、asf以及对应的播放列表格式)。

扩展(extensions):它通常是扩展开发者为了修改或者增强firefox本身的功能而提供的一种打包格式。

它通常由包含功能代码的js脚本、包含界面的xul文件以及包含皮肤的css文件和各种图像文件组成。

少数特定平台下的扩展可能还会附带一些二进制文件。

∙Firefox扩展是什么?官方定义:它是用于给Firefox增加一些实用新功能的附加组件。

使用的技术:○XUL: 一种基于XML的用户界面语言○CSS,DOM,JavaScript○XPCOM: 跨平台的COM(COM 的全称是Component ObjectModel 组件对象模型。

)技术,基本原理与微软的COM类似○XPConnect: 将JavaScript和XPCOM连接起来,即可以让XPCOM组件被脚本化,在js代码中调用,也允许使用js来开发XPCOM组件开发,相当于“胶水”。

30个为网页设计者和开发人员精选的Firefox扩展插件

30个为网页设计者和开发人员精选的Firefox扩展插件

30个为网页设计者和开发人员精选的Firefox扩展插件原文:30 Best Firefox add-ons翻译:帕兰Dejan Cancarevic是一名优秀的网页设计者和开发人员,下面他精选了30个他经常使用的Firefox插件,这些插件都能很好的帮助网页设计者和开发人员,简化工作量,或是增加设计应用功能等等。

1. CSSMate–在线的CSS编辑器扩展插件2. V iewSourceWith–让你查看页面资源的Firefox扩展应用3. PicLens–变换你的浏览器为一个三维的浏览环境来查看网页图片的Firefox扩展插件4. FireShot -强大的网页截图/截屏插件5. SeoQuake–搜索引擎优化和网站推广插件6. Font Finder -简单的高亮一个事件并且左键点击弹出菜单可以查看CSS样式7. Live HTTP Headers–在浏览网页的同时查看一个页面的HTTP头部信息8. Modify Headers–允许你添加、修改或过滤http头部请求信息的Firefox扩展插件9. CSSV iewer -一个简单实用的扩张,可以让你查看当前网页中任何部分的CSS代码10. EditCSS–只需要右键点击就可以在浏览器的侧边栏中查看和编辑样式表代码11. Firebug–查看,编辑和跟踪网页上面的CSS, HTML和JavaScript的Firefox插件12. V iew Formatted Source -为网页上的每一个元素格式化并使用不同的颜色高亮显示13. Professor X -让你不看源代码就能看到页面头部信息的Firefox插件14. CSS validator–一键检查当前网页是否符合W3C CSS 标准的验证器插件15. V alidaty -提供给你一个类似于的校验器按钮16. Html V alidator–添加HTML校验器17. Copy as HTML Link -给选中的文本创建一个当前页面的HTML链接18. TableTools–过滤、排序HTML表格等的Firefox扩展插件19. CHM Reader–让Firefox支持HTML编译文件的Firefox扩展插件20. PageDiff–帮助网页设计者和开发人员在不同的网页之前查看页面源代码21. Clipmarks–让你保存当前页面中的任何元素的Firefox插件22. SourceEditor–查看和编辑HTML元素代码的Firefox扩展插件23. Total V alidator -使用官方DTDs提供一个真正的HTML检查器的Firefox扩展插件24. LinkChecker–检查任何网页上面的有效链接的Firefox扩展插件25. Web Developer–添加一个菜单和工具栏,包含各种网页开发工具的Firefox扩展插件26. Style Sheet Chooser II–让你选择网站作者为网站提供的候补风格的Firefox扩展插件27. V iew Dependencies -显示网页上面所有被装载的元素信息的Firefox扩展插件28. Accessibar–可以轻松地操纵网页显示和文本语音输出的Firefox扩展插件29. Aardvark–用来清楚网页的冗余信息和打印网页等功能的Firefox扩展插件30. JSview–添加能够查看外部档案源代码的功能Web开发人员常用的火狐插件15个Web开发必备的Firefox扩展插件Firefox是一款越来越热的Web浏览器,多种多样的扩展,主题,插件,是它快速流行的重要原因。

一步一步学习Firefox扩展的开发(1)——制作工具栏按钮及右键菜单

一步一步学习Firefox扩展的开发(1)——制作工具栏按钮及右键菜单

⼀步⼀步学习Firefox扩展的开发(1)——制作⼯具栏按钮及右键菜单Firefox提供开放、强⼤且灵活的扩展机制,因此衍⽣出了⼤量功能丰富的扩展组件,这些扩展组件甚⾄可以说是某些⽤户爱上firefox的主要因素。

⽐较可惜的是firefox扩展开发的中⽂资料相对⽐较少,因此在这⾥我会从简单到深⼊介绍开发firefox扩展的⼀些技术及常遇到的问题。

本⽂主要内容:制作⼀个包含⼯具栏按钮及右键菜单的简单组件解决扩展安装后⼯具栏按钮却不显⽰的问题因为这个组件不需要设计交互窗⼝,因此开发过程相对简单,下⾯是这个组件运⾏的效果图:在开始之前先介绍⼀下⼏个⽹址:https:///en/Extensions官⽅开发⽹,类似MSDN,是开发时的主要参考资料;https:///en/Building_an_Extension,官⽅的⼀个基础教程,笔者通过此篇⽂章⽽⼊门;/code/mozilla/extensionwiz/,⼀个在线的创建扩展的向导,如果你想⽴即创建⼀个属于⾃⼰的扩展,可以试试⽤这个向导制作⼀个雏形,然后再⾃⼰慢慢添砖添⽡。

本⽂所讲的例⼦也是⽤这个向导制作出来的。

好了,下⾯就开始讲解本⽂的⽰例组件:uusharedemo1的制作过程。

1、了解扩展组件的构成Firefox扩展组件是以⼀个xpi⽂件的形式发布的,⽽xpi⽂件实际上是zip压缩包⽂件,我们只要把Firefox扩展组件下载回来(⽤右键另存为即可下载),把⽂件扩展名改为zip即可解压并看到所有的源代码,有时可能还会在压缩包⾥⾯看到jar格式⽂件,这个也是zip压缩包,改名解压即可看到源代码。

因此多下载优秀的扩展回来慢慢研究其源代码也不失为⼀种快速的学习⽅法。

⼀般xpi⽂件内部有(但不⼀定都有)如下⽬录及⽂件:其中 uusharedemo1 为本⽂⽰例组件的名称,可以看到压缩包⾸层有:install.rdf及chrome.manifest两个⽂件以及⼀个chrome⽬录。

我的Firefox插件开发之旅

我的Firefox插件开发之旅

转自:http://www.cppbl /epubcn/archive/2008/11/07/66206.html我的Firefox插件开发之旅(1)——从零开始准备做一个Firefox插件,用来接收从WEB页面传递的参数,根据这些参数从服务器上下载一些文件到本地,并调起本地的一个应用程序。

以前在IE中是使用一个ActiveX来实现的。

FF的插件从来没有做过,不知道将来会遇到多少困难。

在网上发现一个页面:/code/mozilla/extensionwiz/,它提供了一个FF扩展的生成向导,填写完必要信息后,会生成一个zip文件。

之后我改名为xpi后,丢到我的FF 3.0中,提示不正确的安装包。

看来这个向导针对FF3还有些问题。

具体问题是什么?现在还不清楚。

让我来继续寻找资料……在Mozilla网站上了解到,FF的Extension和Plugin是两种概念的东西:Extension就是一个zip包,里面有规定的一些必要文件。

这个可以下载几个插件看一下他们的目录结构就好了。

我下载了一个QuickNote,看了一下,主要包括一个install.rdf(安装包相关信息和文件资源路径等配置)、chrome.manifest(设置各种XUL文件路径以及其他的一些资源文件路径)、chrome文件夹(里面放着插件的所有源文件),不过chrome文件夹里面的文件我还没有过多研究。

Plugin好像是另外一码事了,在Mozilla Developer Center的Plugin开发介绍文中有这么一句:Plugins are different from extensions, which m odify or enhance the functionality of the browser itself. Plugins are also different from search plugins, which plug additional search engines in the search bar. (插件与扩展不同,它更改或者改善了浏览器自身的功能。

Firefox浏览器中的工程代码质量:看看我们的工具和挑战

Firefox浏览器中的工程代码质量:看看我们的工具和挑战

多年来,Mozilla的工程团队已经引入了用于代码质量的工具。

该工具链可在复杂的Firefox开发周期的各个阶段使用。

在本文中,我们将介绍我们开发的工具类型,它们所解决的一些挑战以及我们开发的体系结构解决方案。

当我们谈论代码质量工具时,我们指的是以下几类工具:•静态分析•林亭•编码风格•代码覆盖率通常,对于比构建Firefox桌面浏览器小的规模的开发项目,简单的CI(连续集成)作业相对容易设置和配置。

它们针对的语言数量有限。

开发人员可以使用许多设置和CI平台。

Firefox是一个庞大的开源软件项目(共2100万行代码),源于1998年的Netscape。

我们使用多种语言(C ++,Rust,JavaScript,Python等),每天管理数百种更改,并处理几千兆字节。

这带来了一些独特的挑战。

工具类在这篇文章中,我们将不列出我们运行的所有工具。

相反,我们将专注于为什么以及如何使用我们的工具。

您可以在我们的文档中找到所有工具的所有详细信息:https : ///code-quality/由于很难在Firefox开发人员的工作站上添加工具(例如,挂钩),因此我们决定在审查阶段集中精力运行这些工具。

挑战性不同类型的故障当我们测试质量时,会出现不同类型的故障。

这是我们的第一个挑战:•某些问题总是会破坏CI(持续集成),而不会带来误报(生成错误,某些强制格式设置规则未得到遵守等)。

例如,我们有特定于我们的代码库的自定义C ++检查器。

我们知道它们会导致产品出现问题。

因此,我们确保打破CI,以防止代码着陆并在产品中造成麻烦。

•潜在的错误:根据您的观点,C / C ++要么太复杂,要么就是有问题的语言。

因此,已经开发了一些工具(静态分析仪)来防止出现问题。

但是,这些检查器具有错误的肯定报告。

(否则,它们将是由编译器触发的错误。

)o例如– clang-tidy`performance-不必要的值参•完善的工具:可以在代码库中带来更多一致性的检查器。

firefox超级使用技巧

firefox超级使用技巧
Firefox也是以标签页浏览为特性的浏览器,对于标签页的浏览有很好的支持,但是目前设置不够丰富。其按压鼠标滚轮打开/关闭标签页的操作同样很方便,相当于Maxthon里面的强制打开链接到新标签页的设置,并且可以自由控制打开的时机。不过其默认不提供双击关闭标签页的操作。Tab Mix Plus就是强化标签页设置的一个扩展,它提供强大的多标签浏览设置,用户可以按照自己的喜好来设置标签浏览方式,经过重新设置后,其方便程度笔者认为已经超越了Maxthon
FF使用技巧:: ,,/ ,,
IE 浏览器使用的内核代号是Trident,Mozilla Firefox 浏览器使用的内核代号是Gecko,而Opera采用的是Kestrel新内核,Opera一直被誉为“最快的浏览器”。
AspellFox检查表单的工具,我不知道为何不能使用,未测试
RankQuest SEO Toolbar 检查网站在搜索引擎和alexa的状态
OperaView 检查网站在Opera的显示状态,前提是你的电脑中已装Opera
IEView 检查网站在IE的显示状态
2.超级拖曳
Maxthon的超级拖曳功能为用户所津津乐道。只要用户“拖曳”连接就可以打开新标签页浏览,从而避免鼠标大范围的移动和多点击操作,非常方便。
Super DragAndGo 也为Firefox提供了很好的超级拖曳支持,并且达到了接近于5颗星的用户满意度。其特点是:把链接、文本链接、图片或者书签工具栏里的书签快捷链接拖曳到网页的任意空白位置就可以在新标签页打开它们;拖曳词语到网页内容区域中的任意位置,则使用预设的搜索引擎搜索此词语;拖曳图片到任意位置则开始下载此图片。
下面,通过对比Maxthon三个最显著的特性:多标签浏览,超级拖曳和广告猎手,通过相应的扩展设置,让Firefox变得跟你的Maxthon一样!

20个火狐插件-网站前端开发必备

20个火狐插件-网站前端开发必备

一般来说使用firefox火狐浏览器都会安装插件,而对于网站前端开发人员来说,使用火狐更多的是为了方便调试网站,CSS和JS等。

所以这里我们专为前端开发这推荐以下的20个火狐插件,这些都可以帮助你提高工作效率:1-InspectorWidget在工具栏上添加按钮和菜单用来调用DOM查看器,查看chrome和元素。

2-Web Developer一个很实用的扩展,为Firefox添加一个含有不同web开发工具的菜单和工具条。

3-IE View右击在IE中查看当前页面,还可以标记某些特定页面总是用IE中打开。

4-TinyUrl Creator通过在浏览器中右键单击,用tinyurl为某些长url或链接创建缩略地址,方便在twitter和email传送。

5-EditCSS放在侧边栏里的样式表调节器。

6-View formatted source是否曾想过不用擦好看css源文件就可以查看到页面中每个元素的样式,眼前这个很棒的扩展就可以做到。

你可以精确的看到哪条css规则和哪个元素匹配。

每条css规则显示包括文件名和行号。

顶端的元素具有最高优先级。

(这是一个1.0-2.x时代的FF扩展)7-Firebug最棒的扩展之一。

我想怎么推荐这个插件都不过分!有了Firebug,你可以实时的在任何Web页面中编辑,调试,乃至查看CSS,HTML 还有。

你甚至还可以用它来学习CSS。

8-Image Download这个扩展能够下载页面中所以的图像,帮助提升图像的下载速度。

同时,你还可以通过长宽,类型来设置过滤下载你想要的。

9-JavaScript Debugger为基于Mozilla的浏览器提供一个强大的JavaScript调试环境。

10-Greasemonkey这可以说是一个必装的扩展!它将彻底改变你的互联网体验将。

有了它,你可以通过少量的JavaScript来定制Web页面的显示方式。

在上,你可以找到针对各种热门网站,数以百计的Greasemonkey脚本。

利用WebExtensions技术开发浏览器扩展插件

利用WebExtensions技术开发浏览器扩展插件

利用WebExtensions技术开发浏览器扩展插件摘要本文讲述了利用WebExtensions为Firefox浏览器开发扩展插件的基本方法,包括manifest.json配置文件的主要配置参数、扩展内部、外部本地应用程序相互之间的消息通信机制等。

关键字浏览器扩展 WebExtensions 开发配置消息通信WebExtensions是一个新的浏览器扩展开发API, 支持用HTML、CSS、JavaScript等标准Web技术进行扩展开发,它是一个跨浏览器的标准,兼容Firefox、Chrome、Edge等主流浏览器,为其中一种浏览器开发的扩展,只需做部分调整,即可在其它浏览器中运行。

本文通过实例讲解利用WebExtensions为Firefox浏览器开发扩展。

1程序结构WebExtensions扩展包括的主要文件有:manifest.json,用于配置扩展的各类属性和参数,每个扩展必须有一个。

后台脚本(blackground)文件,扩展的主程序文件,运行在独立的进程空间,支持全部的WebExtensions API。

内容脚本(content)文件,注入到用户页面中执行,可以利用DOM API操纵用户页面内容,只支持部分WebExtensions API。

扩展内的脚本之间、不同扩展之间以及扩展和本地应用程序之间可以利用提供的消息机制进行通信。

另外提供了用户界面的功能,可以为浏览器添加按钮、侧边栏面板、设置页面等,使用户可以与扩展交互。

2开发实例下面通过讲解一个具体实例,使读者了解Firefox扩展开发的基本过程。

假设你是一个英语学习者,需要从朗文词典网站上下载一些单词例句音频练习听力,假设需要下载football这个单词的例句音频,首先输入网址https:///dictionary/football,网页出现后,点击一个工具栏按钮,则自动将该网页上的所有例句音频下载到本地,同时将例句信息写入本地文件。

紫鸟浏览器 源代码

紫鸟浏览器 源代码

紫鸟浏览器是一款非常受欢迎的浏览器,它的源代码是基于开源的Mozilla Firefox而开发的,具有安全、快速、节省资源等特点,受到了广大用户的欢迎。

首先,紫鸟浏览器的源代码是基于Mozilla Firefox浏览器的,而Mozilla Firefox是一款开
源浏览器,具有强大的安全性、可扩展性和易用性,在用户群体中有着广泛的受欢迎程度。


鸟浏览器的源代码基于Mozilla Firefox,因此它也继承了Mozilla Firefox的优点,包括安
全性、可扩展性和易用性。

其次,紫鸟浏览器的源代码还具有很强的性能优势。

它采用了最新的浏览器技术,能够让网页
在更短的时间内加载更多的内容,从而使网页浏览变得更加迅速、顺畅。

此外,紫鸟浏览器还
具有节省资源的优势,它可以让用户在浏览网页的同时,减少内存占用量,从而让用户的电脑
系统更加流畅,而且不会占用太多的存储空间,更加节约资源。

此外,紫鸟浏览器的源代码还具有良好的可定制性。

它支持用户自定义界面,用户可以根据自
己的喜好调整浏览器的外观,比如更改主题、图标等,从而让紫鸟浏览器更加符合用户的个性
化需求。

此外,紫鸟浏览器也支持用户安装插件和扩展,可以更好地满足用户的浏览需求,比
如安装Adblock拦截广告,安装Google翻译插件等。

总之,紫鸟浏览器的源代码具有安全、快速、节省资源以及可定制等优点,是一款非常受欢迎
的浏览器,值得推荐给所有用户。

学习使用浏览器开发者工具进行调试和性能分析

学习使用浏览器开发者工具进行调试和性能分析

学习使用浏览器开发者工具进行调试和性能分析浏览器开发者工具是一组内置于现代浏览器中的工具,旨在帮助开发人员调试和优化网页。

使用浏览器开发者工具,开发人员可以通过检查和修改网页的HTML、CSS和JavaScript来查找和解决问题。

同时,浏览器开发者工具还提供了性能分析功能,可以帮助开发人员优化网页加载速度和性能。

本文将详细介绍如何使用浏览器开发者工具进行调试和性能分析,主要包括以下几个方面的内容:1. 开启浏览器开发者工具:不同浏览器的开发者工具打开方式不尽相同,可以通过快捷键、菜单栏或右键菜单来打开。

常见的浏览器开发者工具有Chrome DevTools、Mozilla Firefox的开发者工具、Microsoft Edge的开发者工具等。

2. 检查网页元素:在浏览器开发者工具的“Elements”(或类似名称)标签中,可以查看网页的DOM结构,并对元素进行检查和修改。

开发人员可以通过查看和修改HTML标签、属性和样式来调试和优化网页。

3. 控制台调试:浏览器开发者工具提供了JavaScript控制台,可以在其中执行和调试JavaScript代码。

开发人员可以在控制台中输出日志信息、调用JavaScript 函数,甚至可以在运行中的网页上进行实时的代码修改和测试。

4. 网络调试:浏览器开发者工具还提供了网络调试功能,可以查看网页的网络请求和响应。

开发人员可以查看请求的详细信息、请求头和响应内容,还可以模拟不同的网络环境和速度来测试网页的性能。

5. 性能分析:浏览器开发者工具的性能分析功能可以帮助开发人员找到网页加载过程中的性能瓶颈和优化点。

通过对网络请求、DOM构建、JavaScript执行和渲染等方面的分析,开发人员可以了解网页加载的耗时和资源占用情况,并针对性地进行优化。

6. 编辑器集成:一些浏览器开发者工具还可以与编辑器集成,提供更加高效的开发体验。

开发人员可以在编辑器中直接编辑网页代码,并通过浏览器开发者工具实时预览效果,从而更方便地进行调试和开发。

leader-lineposition方法

leader-lineposition方法

leader-lineposition方法在CSS中,leader-line position属性是由Mozilla开发的一个扩展属性,目前只有Firefox浏览器支持。

它有三个可选的值,分别是start、middle和end,用于指定标注线的起点、中点和终点的位置。

以下是一个使用leader-line position属性的示例:```css.tagbackground-color: #f5f5f5;padding: 10px;border-radius: 5px;display: inline-block;margin-bottom: 20px;.tag::beforecontent: "";position: absolute;/*其他样式属性*//*使用类选择器设置标注线*/.highlight::beforecontent: "";position: absolute;/*其他样式属性*//*使用ID选择器设置标注线*/#element::beforecontent: "";position: absolute;/*其他样式属性*/```通过设置position属性为absolute,我们可以绝对定位标注线元素。

然后,使用leader-line position属性来设置标注线的位置。

在此示例中,分别设置了start、middle和end三种不同的位置。

除了设置leader-line position属性,还可以通过其他样式属性来进一步定制标注线的样式,例如颜色、粗细、样式等。

使用leader-line position属性的一个常见应用场景是在网页设计中的表单验证。

当用户输入不合法或格式错误时,可以使用标注线来指示输入框或其他相关元素的状态。

通过设置不同的标注线位置,可以更好地展示错误位置和错误信息,提高用户体验。

开源软件使用指南

开源软件使用指南

开源软件使用指南随着计算机技术的发展,软件越来越多,种类越来越繁多。

其中,开源软件因为其开放性、自由性、安全性和免费性等特点逐渐得到人们的青睐。

本文将介绍一些常用的开源软件,为大家提供使用指南。

一、操作系统1. LinuxLinux是一种自由免费的操作系统,它的开放性和灵活性,让许多人选择它而不是其他操作系统。

Linux有着千千万万种版本,例如Ubuntu、Fedora、Debian、CentOS等等,用户可以根据自己的喜好和需求来选择适合自己的版本。

Linux操作系统不仅安全可靠,还支持各种开发语言和开发工具,满足用户的多样化需求。

2. FreeBSDFreeBSD是一款自由开放源代码的类Unix操作系统,与Linux 不同的是,它是一款比较适合服务器和高性能计算机使用的操作系统。

FreeBSD支持多线程、多处理器、大规模内存等特性,对于需要高性能和可靠性的应用程序,它是非常合适的。

二、办公套件1. LibreOfficeLibreOffice是一套开源、多平台、免费的办公套件软件,它包括了文本编辑、电子表格、演示文稿、绘图等功能。

LibreOffice使用非常简单,而且与Microsoft Office等商业办公软件兼容度较高,可以帮助用户更有效率地完成工作。

2. WPS OfficeWPS Office也是一套免费的办公套件软件,它以加载速度快、界面简洁为特点,同时还提供了云服务和文档协同等功能。

WPS Office兼容性较好,与Microsoft Office的文件格式兼容性非常高,用户可以方便地进行文档转换和编辑。

三、网页浏览器1. FirefoxFirefox是一款开源的网页浏览器,它由Mozilla基金会开发。

Firefox基于Gecko引擎,具有专门的插件机制,用户可以安装多种插件,扩展浏览器功能。

Firefox加入了多项安全特性,使得用户上网更加安全。

2. ChromiumChromium是谷歌公司开发的一款开源网页浏览器,它是Google Chrome的前身。

浏览器方案

浏览器方案

浏览器方案引言随着互联网的快速发展,浏览器作为我们访问互联网的主要工具,扮演着至关重要的角色。

不同的用户对于浏览器的需求和使用习惯也各不相同。

为了满足不同用户的需求,市场上涌现出了许多优秀的浏览器方案。

本文将介绍一些常见的浏览器方案,并分析它们的特点和优缺点。

1. ChromeChrome是由Google开发的一款流行的浏览器。

它以高速、稳定和安全性著称,并且具有丰富的扩展生态系统。

Chrome采用了多进程架构,可以有效地隔离不同的标签页和插件,提高了浏览器的稳定性和安全性。

Chrome的界面简洁直观,使用起来非常方便。

它支持自动同步书签、密码和浏览历史等数据,使得用户可以在不同设备上同步浏览器的状态。

此外,Chrome还内置了强大的开发者工具,方便开发人员进行网页调试和性能优化。

然而,Chrome也存在一些问题。

首先,它占用的系统资源相对较高,可能会导致电脑运行缓慢。

其次,Chrome作为一个商业产品,可能会收集用户的个人数据,在隐私方面存在一定的风险。

2. FirefoxFirefox是一款开源的浏览器,由Mozilla基金会开发和维护。

与Chrome类似,Firefox也注重浏览器的速度、稳定性和安全性。

不同的是,Firefox采用了独特的“量子引擎”,能够更高效地利用系统资源,提供更快的网页加载速度。

Firefox支持丰富的扩展和插件,用户可以根据自己的需求来定制浏览器功能。

此外,Firefox注重保护用户的隐私,采用了多种技术手段来防止网络跟踪和数据收集。

然而,与Chrome相比,Firefox在某些方面存在一些不足。

首先,虽然Firefox开源,但其市场份额相对较小,可能在某些网站上遇到兼容性问题。

其次,与Chrome相比,Firefox的扩展生态系统相对较弱,可选择的扩展和插件较少。

3. SafariSafari是苹果公司开发的浏览器,主要用于苹果设备上。

作为Mac和iOS系统的默认浏览器,Safari注重整合系统和硬件的优势,提供流畅的用户体验。

火狐插件开发教程

火狐插件开发教程

⽕狐插件开发教程firefox的插件分两种类型,⼀种extension,叫扩展,⼀种是plugin,我们叫插件.两种是完全不同的两个东西。

extension相对来说简单很多,⽤的主要是XUL,只是xml的⼀个变相。

⽽plugin相对来说复杂⼀些。

具体的官⽹说明如下⼀、插件的标准1、在windows平台,⽕狐的插件是以动态库形式(dll)存在的,并只去识别在其安装⽬录下plugins⽂件夹下的dll;2、dll的名是以8.3原则来命名的,即其名字所包含的字符不超过8个字符且以dll结尾的⽂件,还有⼀个规定就是其名字必须以np开头,例如:npXXX.dll,⽽XXX不超过六个字符;3、dll是属于MIME(⼀种标准)类型,要不⽕狐浏览器不认识他;4、dll导出的函数必须是NP_GetEntryPoints、NP_Initialize、NP_Shutdown是这三个,这是⽕狐浏览器能够识别的在个接⼝,具体说明在插件的⽣命周期中说明。

⼆、插件的⽣命周期1、第⼀次打开含量有插件的页⾯时,浏览器最先调⽤NP_GetEntryPoints作为调⽤插件的⼊⼝,此⽅法也只在第⼀次加载插件时调⽤。

2、调⽤NP_GetEntryPoints后,浏览器会调⽤NP_Initialize初始化插件,NP_Initialize只在第⼀次调⽤时被浏览器调⽤,与NP_Initialize 配对的是NP_Shutdown,NP_Shutdown是在关闭了所有含有该插件的页⾯后被浏览器调⽤,在⽣命周期内也只被调⽤⼀次3、调⽤NP_Initialize后,浏览器会调会NPP_New来创建⼀个插件实例,每打开⼀个页⾯都会调⽤NPP_New⼀次来创建⼀个插件实例,与 NPP_New配对的是NPP_Destory,在每关闭⼀个页⾯都会调⽤NPP_Destory来释放NPP_New创建的实例4、调⽤NP_Initialize后,⼀般会调⽤NPP_SetWindow来调置窗⼝,对于没有窗⼝的插件当然不⽤调⽤。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

基于 Mozilla 的扩展开发来源:Lewis Lv发布:喜龙网前言我在今年才刚开始接触 Firefox 和“扩展(Extension)”这些概念,许多的内容也是在学习中探索。

我感觉到,由于这些技术在国内很少有系统的介绍,引入的书籍性翻译资料几乎为零,只有在国内几个知名程序员的 Blog 上有些介绍,其余寥寥无几。

苦于没有现成的中文资料可供参考,我不得不在英文很差的情况下,翻看了部分国外的资料,并且通过读源代码的方式来增加自己对扩展开发的理解。

出于开源开发的思想,我想把自己已有的开发经验做些总结,并在未来加入自己新的理解,维护好这篇文档。

希望这篇文档能对你 Mozilla 下的开发有所帮助,我将尽我之力将复杂的技术阐述清楚。

在此,我要特别感谢我所在的亿邮公司和领导,没有他们的支持,我不可能利用工作时间对已知的技术做如此系统的整理;我还要感谢我的同事,没有他们的“锱珠必较”,我也不可能将那些复杂的技术描述得比较通俗易懂。

同时,我还也要感谢你的阅读,如果你能对此文档的不足之处有所补充,或对错误提出指正,此文档将会被更好的维护,谢谢!第一章技术介绍扩展开发(Extension development)是由于 Mozilla 技术的实现而被引入的。

那段浏览器大战的是是非非,我不想做过多的介绍。

Netscape 浏览器源代码在被送到开源组织之后,非盈利性的“Mozilla基金会(Mozilla Foundation)”成立了。

也正是在重写了 Netscape 的源代码之后,才有的 Mozilla 浏览器,而所有的这些技术也正是基于这个“脱胎换骨”的 Mozilla Suit 而来的。

直到近几年,Mozilla 基金会为了使Mozilla 浏览器更加精简高效,它的开发者们决定将浏览器和邮件客户端程序独立出来,Mozilla Firefox 和 Mozilla Thunderbird 等就此产生。

(注:以下除非特殊声明,对基于 Mozilla 内核的应用程序一律用 Mozilla 来称呼;对 Firefox 或 Thunderbird 等程序只做特殊称呼,又由于它们也是基于 Mozilla 内核的应用程序,所以它们也可用 Mozilla 来称呼。

)扩展的开发也多是基于以上提到的几个应用程序的,扩展程序的目的是为了增强浏览器本身的功能。

因为 Mozilla 本身只支持一些浏览器所具有的普遍的功能,显然不能满足一些用户的特殊需求。

但由于 Mozilla 本身的框架非常好,它所提供的资源已经远远超出了一个浏览器的范畴,更多的情况下倒像是一个“平台”。

因为它提供了大量的开发接口,高度的模块化和可扩展性。

所以,这就为我们在其下进行各种开发提供了很强的基础。

下面对 Mozilla 所支持的各种技术做一些简单的介绍。

1.1 扩展开发所涉的技术XUL:它是“XML 化的用户界面语言(XML User Interface Language)”的缩写,这是一种以平台无关性为目标,用来描述用户界面的语言,现在被广泛地应用于 Mozilla 平台。

再有,Mozilla 本身的界面就是用 XUL 进行描述的。

CSS:它是“层叠样式表(Cascading Style Sheets)”的缩写,这是一种可以通过规则来控制 HTML/XUL/XML 等显示外观的语言。

DOM:它是“文档对象模型(Document Object Model)”的缩写,这是一个允许通过脚本来动态访问和更新 HTML/XML 文档的内容,结构和样式的接口。

XPCOM:它是“跨平台组件对象模型(Cross -platform Component Object Model)”的缩写,它很像微软的提出的组件模型技术,但它是跨平台的,即其运行环境可以不依赖于某种特定的操作系统平台。

XPConnect:一种将 XPCOM 与 JavaScript 连接起来的技术。

该技术允许组件被脚本化,而且能够用 JavaScript 来进行组件的开发。

XBL:它是“可扩展的绑定语言(Extensible Binding Language)”的缩写。

RDF:它是“资源定义框架(Resource Definition Framework)”的缩写。

Mozilla 使用这种文件格式来保存扩展的注册信息和描述信息等。

JavaScript:由 Netsacpe 公司的 Brendan Eich 创造的一种解释型语言,它主要用来进行基于浏览器下的脚本应用开发。

因为 Mozilla 内置了 JavaScript 解释器,所以使用 JavaScript 开发扩展,就成为编程语言的首选。

虽然,你也可以使用 C++,Perl,Python 等进行扩展的开发,但这些语言的先天优势都明显不足。

对于扩展开发来说,必须掌握的技术有 XUL,CSS,DOM,XPCOM,JavaScipt,而对于 XBL,XPConnet,RDF 做简单了解即可。

我们可以看到,做扩展开发涉及到了这么多的技术,那它们都分别负责什么功能呢?1.2 各种技术所负责的功能当我们在自己的机器上安装了某个扩展之后,我们可以看到,那些扩展工作起来就像是浏览器的一部分,与浏览器一起工作得很协调。

虽然以上的许多技术都是由 W3C 这样的互联网组织提出的,但 Mozilla 却用它们来做桌面开发。

因为,这些扩展确切来说全都是程序,是一种面向桌面应用的程序,而不是网页一类的东西。

有了以上的这个观点,就不难解释它们所负责的功能了,下面分别给予解释。

XUL,CSS都是用来负责控制程序的界面,一个是用来描述界面,一个用来在被描述的界面上加入一些界面效果(如:字体颜色,是否透明,边框大小等)。

可以看出,它们更多的功能是负责与用户打交道,所以用户在评价某个扩展程序的好坏时,多半会提及它的界面设计是否合理。

如果想要使我们的扩展与用户交互得更合理,还需要你对应用于桌面开发的人机交互有所了解;DOM主要用来为 JavaScritp 提供一个 HTML/XML 的文档操作接口,并且,它也可以用来操作 CSS。

由于扩展的界面是由 XUL 定义的,而 XUL 只是 XML 的一个特殊应用,所以我们也可以通过 DOM 来对扩展界面进行“动态”操作(如:按钮的禁止与否,动态装载数据等)。

同时,又有许多的文件和数据会采用 XML 进行存储和传输,所以创建和分析XML 文档又显得尤为重要。

可以看出,通过 DOM 接口,我们可以将程序的逻辑处理部分与界面表现部分有机的结合起来。

JavaScipt是扩展开发的核心要求,它主要用来实现程序的业务逻辑描述。

在很长一段时间里,大家都对 JavaScript 有着不正确的认识。

直到最近一段时间,才有所改观。

确切的说,JavaScipt 在扩展开发中起着粘合剂一样的功能。

利用 JavaScript 开发扩展有着先天的优势,因为 Mozilla 本身除了底层部分是用 C++ 编写以外,大量的代码全部采用 JavaScript 编写。

再有,由于 JavaScript 是非编译性的,所以即使你下载的是安装包程序,你仍然可以查看并修改其中的 JavaScript 源代码,这一点符合 Mozilla 的开源特性。

虽然 JavaScript 看上去很简单,但用 JavaScript 开发大型程序,却对开发人员本身提出了很高的要求。

因为 JavaScript 是一种比较灵活的语言,就当前版本的JavaScript 来说,其本身并没有提供很好的进行大型开发的结构,所以就要求开发人员必须具备很强的能力,对那些复杂的结构进行模块化的处理。

如果仅仅使用面向过程进行开发,就会在开发时“捉襟见肘”,这就要求开发人员必须采用面向对象的方式进行开发。

可以说,从网页下的 JavaScript 开发到扩展下的 JavaScript 开发,是一种由轻量级到重量级的转变。

由于 JavaScript 语言只内置了几个与本地访问无关的对象,而对于桌面开发来说,显然不能满足要求。

因为桌面开发需要访问大量的本地和网络资源,包括文件,剪贴板,Socket,浏览器本身等各种资源。

而XPCOM为面向桌面的开发提供了这种可能,并且它使开发出的扩展程序可以跨平台的运行,而不用依赖于某个特殊的操作系统。

只有使用 XPCOM,我们的扩展才可以做出实用的功能,没有 XPCOM,本地与远程的资源整合可以说是不可能。

虽然扩展开发是用 JavaScript 来做的,但每个封装的对象或函数可能都要调用 XPCOM 对象来完成特定的功能。

可以这么说,离开 XPCOM,我们寸步难行。

要想对以上的技术依次做很深入的解释简直是太难了,因为每种技术本身和它的应用都足以写上厚厚的一大本书。

我现在还不打算做这么系统的工程,我打算从一个示例入手,将这个看上去很复杂的问题说得简单点儿。

第二章开发平台的准备“工欲君欲善其事,必先利其器”。

Firefox 就是我们的开发环境,因为所做的开发都是基于 Firefox 的。

那么首先,我们要配置好所在的开发环境。

合理而有效地配置好整体的开发环境和指定的项目环境,可以令你的开发快速而高效。

本章节将讲解如何配置整体的开发环境,后面的章节还将对指定项目的环境配置给予讲解。

2.1 安装开发工具首先,我们需要下载一个开发平台。

虽然 Mozilla Suit 在很长一段时间内还将被使用,但它将不再是扩展开发的重点对象,因此作者希望你的开发环境是 Firefox。

那么首先,你需要在自己的机器上下载并安装 Firefox 浏览器。

对于开发人员来说,我们有必要在第一时间了解到 Firefox 的更新状态,下面的链接地址可以让你快速地定位新版本的下载位置。

/pub//firefox/releases/由于作者在写这篇文档时,Firefox 正存在着高版本和低版本的区别,这是由于它分别采用了主分支和子分支的内核造成的。

在这种情况下,你可能需要下载两个不同版本的Firefox 进行开发。

但是,如果你对扩展的开发还不熟悉的话,作者不建议你这么做,我希望你下载一个公认的比较稳定的版本,并且下文提到的那些扩展在上面工作得很好。

当你下载完成并进行安装时,你需要选择“自定义(Custom)”安装模式。

因为在这种模式下,我们可以选择并安装“开发工具(Developer Tools)”,这一点对于开发人员尤其重要。

接下来,我们要下载并安装辅助开发的“工具性扩展”。

下面,先对这些工具性扩展进行简单的介绍。

JavaScript Debugger:又被称为Venkman,它是 Mozilla 平台下的脚本调试工具。

Firefox 下的网页及扩展开发,都要求使用 JavaScrit 的调试工具。

相关文档
最新文档