我的Firefox插件开发之旅(3)——我的第一个扩展

作者: admin 分类: firefox 插件 发布时间: 2013-01-30 11:15 ė3,823 浏览数 6没有评论
文章转自王牌软件
站长推荐:NSetup一键部署软件
一键式完成美化安装包制作,自动增量升级,数据统计,数字签名。应对各种复杂场景,脚本模块化拆分,常规复杂的脚本代码,图形化设置。无需专业的研发经验,轻松完成项目部署。(www.nsetup.cn)

简单知道了XUL,迫不及待地想立即编写一个插件,哪怕什么事情都不做也好。O(∩_∩)O

通过这个页面https://developer.mozilla.org/en/Building_an_Extension,可以找到编写一个插件必须要做得一些事情,写的很清楚。最后产生的目录和文件结构是这个样子:
install.rdf
chrome.manifest
chrome
  |–content
      |–overlay.xul (我准备在这里编写代码,在FF的工具栏上添加一个按钮)
  |–locale
      |–en-US
          |–sample.dtd
      |–zh-CN
          |–sample.dtd
      |–zh-TW
          |–sample.dtd
  |–skin
      |–classic
          |–sampleicon.png
          |–smallicon.png
          |–default.css (界面显示的样式表,今后可能会用到)


上面文件中的install.rdf、chrome.manifest基本上用例子中的就好了,dtd文件里面是界面文字,这个可以模仿其他插件编写。
overlay.xul我准备添加一段代码,用来在FF工具栏上添加一个按钮。skin下面的png是准备在工具栏上添加的按钮的图标。

OK,把上面整个目录用zip打个包,改后缀名为xpi,拖放到FF3中,提示尚未验证作者、是否继续安装。这个先不管它,以后再研究。安装以后,重启FF3,哈哈,写的第一个Extension成功安装了!只不过overlay.xul里面什么都没写,所以还没有视觉上的成就感。下面开始添加overlay.xul中的代码。

怎么在工具栏上添加按钮呢?感谢Mozilla提供的文档,专门有一篇文章是讲这个地:https://developer.mozilla.org/en/Creating_toolbar_buttons。文章里面讲的非常清楚,我这里就不废话了。不过有两点需要注意一下:
1、样式表中的ID和toolbarbutton的id一定要保持一致;
2、按钮的label和tooltiptext可以直接添加文字,但如果使用了中文,有可能会显示乱码(至少在我的FF3上是这样);
3、按钮的图标一定要大小两种(24×24、16×16)都提供;
4、label和tooltiptext可以使用dtd中定义的文字,但必须注意:dtd文件必须存为UTF-8编码,否则会导致按钮显示不出来!

在FF3的定制工具栏中,有图标,但下方没有文字,好像是我哪里忘记添加文字了,一会儿看看去……

好了,我的第一个FF插件就写好了,不过现在只是在工具栏上添加了一个按钮而已,什么事情都没做,下一次我们添加一些行为给它。

以下附上几个关键文件的内容:

一、install.rdf


<?xml version="1.0"?>
<RDF xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:em="http://www.mozilla.org/2004/em-rdf#">
    <Description about="urn:mozilla:install-manifest">
        <em:id>{859606AC-AFFE-4691-82C5-FA0148A7E2D4}</em:id>
        <em:version>1.0</em:version>
        <em:type>2</em:type>
        <em:name>MeetMePlus</em:name>
        <em:description>Anywhere, anytime to starting a conferencing</em:description>
        <em:creator>G-NET</em:creator>
        <em:iconURL>chrome://meetmeplus/skin/gnet_32.png</em:iconURL>
        <em:homepageURL>http://www.meetmeplus.com/</em:homepageURL>
        <em:targetApplication>
            <Description>
                <em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id>
                <em:minVersion>1.5</em:minVersion>
                <em:maxVersion>3.0.*</em:maxVersion>
            </Description>
        </em:targetApplication>
    </Description>      
</RDF>

二、chrome.manifest

overlay    chrome://browser/content/browser.xul    chrome://meetmeplus/content/overlay.xul
content    meetmeplus    chrome/content/
style    chrome://global/content/customizeToolbar.xul    chrome://meetmeplus/skin/default.css
skin    meetmeplus    classic/1.0    chrome/skin/classic/
locale    meetmeplus    zh-CN    chrome/locale/zh-CN/

三、overlay.xul

<?xml version="1.0"?>
<!DOCTYPE overlay SYSTEM "chrome://meetmeplus/locale/overlay.dtd">
<?xml-stylesheet href="chrome://meetmeplus/skin/default.css" type="text/css"?>

<overlay id="mmp-overlay" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
    <!– Firefox toolbar –>
    <toolbarpalette id="BrowserToolbarPalette">
        <toolbarbutton id="meetmeplus-button" type="menu-button" 
            class="toolbarbutton-1 chromeclass-toolbar-additional">
            <menupopup>
                <menuitem label="&mmp.gotohome;" tooltiptext="&mmp.gotohome.tooltip;" image="chrome://meetmeplus/skin/option_16.png" class="menuitem-iconic"/>
                <menuseparator/>
                <menuitem label="&mmp.option;" tooltiptext="&mmp.option.tooltip;" image="chrome://meetmeplus/skin/option_16.png" class="menuitem-iconic"/>
            </menupopup>
        </toolbarbutton>
    </toolbarpalette>
</overlay>

四、overlay.dtd

<!ENTITY mmp.gotohome "访问G-NET MeetMePlus">
<!ENTITY mmp.gotohome.tooltip "访问G-NET MeetMePlus网站">
<!ENTITY mmp.option "选项">
<!ENTITY mmp.option.tooltip "自定义G-NET MeetMePlus的工作方式">



只回答业务咨询点击这里给我发消息 点击这里给我发消息

王牌软件,兼职软件设计,软件修改,毕业设计。

本文出自 王牌软件,转载时请注明出处及相应链接。

本文永久链接: http://www.softwareace.cn/?p=147

发表评论

电子邮件地址不会被公开。 必填项已用*标注

您可以使用这些HTML标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">


Ɣ回顶部

无觅相关文章插件,快速提升流量