firefox的插件分两种类型,一种extension,叫扩展,一种是plugin,我们叫插件.两种是完全不同的两个东西。extension相对来说简单很多,用的主要是XUL,只是xml的一个变相。而plugin相对来说复杂一些。具体的官网说明如下https://developer.mozilla.org/en/Gecko_Plugin_API_Reference
一、 插件的标准
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来调置窗口,对于没有窗口的插件当然不用调用。
注:火狐插件开发的sdk划分为两类接口,一类是与插件相关的,以NPP或者NP开头的;一类是与浏览器相关的,以NPN开头的。
三、 页面调用插件的方式
1、 通过object方式调用:与IE调用ActiveX控件的方式一样的,不同的是IE调用ActiveX控件是通过ClassID来标识的,而火狐的控件是通过MIME的值来标识。
2、 通过embed方式调用:与object方式类似,但操作方面简单一些
四、 插件与页面的信息传递
插件与页面的信息是通过插件的接口与JS进行信息传递。在火狐插件有一类接口可以直接读取页面的JS函数,并从函数中获取相应的值或者调置相关的值。
具体的例子有时间再加上,现在还在头大中。。。。
相关推荐
Firefox插件开发-入门篇
本文简要的介绍了Firefox插件的开发的步骤,结合具体的实例进行了分步介绍,希望能给初学者带来帮助。
firefox plugin 实例
firefox plugin 实例nprt, 用xulRunner sdk 14. 在firefox 14.0.1 + xp上测试test.html成功.
NPAPI插件开发详细记录:用VS2010开发NPAPI插件步骤
前面一段时间关注了用firebreath开发插件,但是感觉用起来不是那么得心应手,还是回到NPAPI开发插件上来。 本文根据NPAPI开发详解,Windows版进行开发,其中以VS2008为例进行开发,在VS2010中基本上是相同的。 必须的plugin sdk,将其解压到某个目录下,我这里是:D:\Users\zcf\Documents\My Program\2012。下面是创建插件的步
Firefox插件(拓展)开发
JavaScript编写插件时,通常分为以下几个脚本:1.:用于操作网页内容,可以访问DOM和页面元素,可以修改页面样式和行为,与页面共享同一个JavaScript环境。2.:用于处理插件的后台任务,例如处理网络请求、管理插件状态、与其他插件通信等,与页面不共享JavaScript环境。3.:用于处理插件弹出窗口的交互逻辑,例如响应用户点击事件、发送消息给后台脚本等。4.:用于处理插件选项页面的交互逻辑,例如保存用户设置、发送消息给后台脚本等。
FireFox插件开发说明与示例
火狐浏览器插件开发过程详细说明
火狐浏览器插件开发小试
火狐浏览器插件开发小试
FireFox插件开发 (一)
Normal 0 7.8 磅 0 2 false false false MicrosoftInternetExplorer4 <!-- /* Sty
FireFox插件开发
准备做一个Firefox插件,用来接收从WEB页面传递的参数,根据这些参数从服务器上下载一些文件到本地,并调起本地的一个应用程序。以前在IE中是使用一个ActiveX来实现的。FF的插件从来没有做过,不知道将来会遇到多少困难。在网上发现一个页面:http://ted.mielczarek.org/code/mozilla/extensionwiz/,它提供了一个FF扩展的生成向导,填写完必
java plugin firefox_Firefox 中使用 Java 插件
本文转自Firefox官方网站许多网页使用 Java 小程序 用于交互式内容,如在线游戏。Java 是一种编程语言,它可以运行在 Windows、Mac、Linux 及其他计算机系统。在 Firefox 运行 Java 小程序之前,您必须已经正确安装并启用了 Java 插件。Firefox 还需要包含于 Java 6 Update 10 或者更高版本里的新 Java 插件。测试 Java一些在线工...
firefox NPAPI 插件开发(c++)(一)
1.创建1Win32控制台应用程序,应用程序类型为DLL,附加选项为空项目2.项目-》右键-》配置属性-》常规-》字符集-》使用多字节字符集3.复制sdk\samples\npruntime文件夹下的np_entry.cpp,npn_gate.cpp,npp_gate.cpp到nptest项目目录下,并添加到项目中其中np_entry.cpp添加#include因为使用到offsetof这时候编
Mozilla FireFox插件开发
FireFox的插件示例首先在VS2015创建新项目nprt(np开头),选择C++->Win32项目,下一步,选择DLL,空项目即可。 解压拿到plugin文件夹后,放到nprt项目目录下。 在nprt中添加现有项,找到plugin\sdk\samples\npruntime,添加np_entry.cpp、npn_gate.cpp、npp_gate.cpp、nprt.def、nprt.rc、p
阅读理解FireFox浏览器插件开发文档(一)
昨天白天用官方示例在主机安装了FF插件,然而晚上回寝室用VS2013并没有成功,不禁想起了那句话“程序员都是好男人,他们每天都会反省自己,我又错在哪了”。言归正传,今天的目标是阅读理解FF插件官方文档,我这菜鸡一般的英语水平勉强能应付。
Firefox Plugin 开发
一、环境搭建 1、Gecko-SDK Firefox是Mozilla基金会主持的、支持多种主流平台的、和Netscape一脉相承的浏览器,内核名字叫Gecko。开发插件前,你首先应该到Mozilla Plugins去了解一下,那里是标准和权威的所在,既有文档,有又例子,关键的是还有一个开发插件必不可少的Gecko-SDK供你下载,这里我主要讨论Windows版的,Linux版的用GNU G
给firefox安装PDF插件
我的firefox一共只用到了两个插件,Flash和PDF,Flash插件安装十分傻瓜,下一步就行,PDF的步骤要多一些。1.下载Acrobat Reader 7.0.5的Tarball$ sudo wget http://ardownload.adobe.com/pub/adobe/reader/unix/7x/7.0.5/enu/AdobeReader_enu-7.0.5-1.i386.tar
ubuntu firefox flash 插件安装
Flash插件 Flash插件可以让您通过浏览器浏览视频和动画内容。 目录 测试Flash 升级Flash 故障排除 注意: Firefox软件更新的功能并不会更新插件。请查阅Adobe安全公告和咨询网页以了解关于Adobe Flash Player和其他Adobe产品的安全和稳定性信息。 要了解如何安装Firefox的Flash插件,请查阅安装 Flash 插件...
linux 下给firefox安装 java 插件
使用广发银行登录时,因为firefox没有安装java插件而无法登录。插件安装文档在:http://plugindoc.mozdev.org/faqs/firefox-linux.html因此,首先,去sun下载 http://java.com/zh_CN/download/index.jsp 下载jre_1.5.0_10, 到本地后解压。(最新jre版本是 jre-6.0.)编辑.bashrc,
制作Firefox Plugin的几个注意点
制作FirefoxPlugin的几个注意点1) DLL文件必须以np开头(无大小写要求),最好遵循8.3格式(现在的firefox没有这个限制),比如说npnul32.dll。2) 在创建项目的时候,最好创建空的DLL项目,否则要手动删除它们,并修改VC的一些设置,比较麻烦,不推荐。项目的名字最好是用np打头,这样就免去修改生成n
2万+


开发概述&spm=1001.2101.3001.11974&articleId=7261191&d=1&t=3&u=ca8ca16962a543f68f3b330449f384a9)

被折叠的 条评论
为什么被折叠?



