faunus 发表于 2008-11-14 21:54:45

XUL Explorer 使用教程(原创)

https://developer.mozilla.org/en/XUL_Explorer


*****      XUL Explorer是一个轻量级的XUL集成开发环境,建成一个XULRunner应用,提供一个简单的方式进行试验XUL 。这是一个简单的编辑器,可以预览内置的XUL或在一个单独的弹出窗口。它有一个清单,代码段(小片段XUL或JavaScript ) ,可以迅速地插入到编辑器。 在XUL可以加载和保存档案。XUL校验工具和JavaScript差错控制台可帮助调试问题。帮助菜单可以连接到MDC信息 。甚至有一个简单的关键字帮助查找XUL内容。

[ 本帖最后由 faunus 于 2008-12-13 12:09 编辑 ]

faunus 发表于 2008-11-14 22:20:18

安装清单

前言安装清单是一个扩展的可被管理的XUL应用程序, 它用以确定即将被安装的扩展的信息. 安装清单包括了识别扩展的元数据, 提供信息关于谁创建了它, 哪里能能找到关于扩展的更多的信息, 哪个版本是与应用程序相兼容的, 应该怎么更新等等.
Install清单文件的格式是RDF/XML.
清单文件必须要命名为install.rdf并且位于扩展的XPI文件中最顶级(XPI是ZIP格式的压缩文件, 这里的"最顶级"指的是在压缩文件内部清单文件应该位于根路径级别).
      
内容布局安装清单内容的基本布局如下:
<?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">
    <!-- properties -->
</Description>
</RDF>
      一些属性是必要的, 一些则是可选的. 一些只是简单的字符串值, 一些则是复杂的资源.

必要的属性引用你的安装清单必须要正确的指定那些必要的属性, 否则你的addon可能不能够安装.
扩展的id属性是:

id
GUID(GUID的生成, Windows上使用guidgen, Linux上使用uuidgen, Solaris上使用makeuuid)
一个字符串格式, 如extensionname@organization.tld
Examples
<em:id>myextension@mysite.com</em:id>
<em:id>{daf44bf7-a45e-4450-979c-91cf07434c3d}</em:id>

version (版本)版本字符串作为标识addon的版本被提供.
对于Firefox/Thundebird 1.0, 版本格式必须要符合指定的规则Extension Versioning, Update and Compatibility.
Examples
<em:version>2.0</em:version>
<em:version>1.0.2</em:version>
<em:version>0.4.1.2005090112</em:version>

type (类型)一个表示addon类型的整型值.
2 Extensions 4 Themes 8 Locale 32 Multiple Item PackageExamples
<em:type>2</em:type>

targetApplication一个object通过addon来指定一个应用程序目标. 意思是说将与应用程序一起工作的addon通过指定的id属性(<em:id>)被识别(for a comprehensive list of application IDs see Valid application versions for add-on developers), 识别过程从最小版本(<em:minVersion>)一直到最大版本(<em:maxVersion>). 这些版本字符串采用相同的方式定义version property并且将被与应用程序的版本进行比较; 这允许extension作者去指定哪个Firefox的版本是extension已经测试通过的.
Install清单文件至少要指定这些版本中的一个, 更可能需要指定更多如果addon目标是与多个支持Addon Manager(Addon管理器)的应用程序(比如, Firefox和Thunderbird)相兼容.
Examples
<em:targetApplication>
<Description>
<em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id>
<em:minVersion>1.5</em:minVersion>
<em:maxVersion>2.0.0.*</em:maxVersion>
</Description>

nameaddon的name用来在UI中显示.
Examples
<em:name>My Extension</em:name>

Optional Property Reference (可选的属性)
localized (本地化)允许你本地化add-on的名称, 描述, 贡献者(不能肯定这么翻译)和其它的元数据. 本地化描述必须要指定至少一个em:locale用以指出要使用哪个本地化信息.
Examples
当应用程序运行于de-DE区域中时, 以下则是用于被显示的add-on元数据的一组定义.
<em:localized>
<Description>
    <em:locale>de-DE</em:locale>
    <em:name>Tab Sidebar</em:name>
    <em:description>Zeigt in einer Sidebar Vorschaubilder der Inhalte aller offenen Tabs an.</em:description>
</Description>

以下属性是在本页的其它位置所描述的并可以被包含在本地化属性中的.
[*]name[*]description[*]creator[*]homepageURL[*]developer[*]translator[*]contributor
description (描述)一个简短的打算被显示在用户界面上的add-on描述. 这个描述应该简短到一行文本.
Examples
<em:description>Advanced foo tools.</em:description>
creator (创建者)打算显示在用户界面上的创建者/主要开发人员的名称.
Examples
<em:creator>John Doe</em:creator>

<em:creator>CoolExtension Team</em:creator>
developer (开发人员)联合开发人员的名称. 你可能要指定一人以上的这个值以指定多开发人员.
Examples
<em:developer>Jane Doe</em:developer>
<em:developer>Koos van der Merwe</em:developer>

translator (翻译人员)翻译人员的名称. 你可能要指定一个以上的这个值以指定多个翻译人员.
Examples
<em:translator>Janez Novak</em:translator>
<em:translator>Kari Nordmann</em:translator>
contributor (贡献人员)另外的一些贡献人员的名字. 你可能要指定一个以上的这个值以指定多个贡献人员.
Examples
<em:contributor>John Doe</em:contributor>

<em:contributor>John Doe</em:contributor>
<em:contributor>Jane Doe</em:contributor>
<em:contributor>Elvis Presley</em:contributor>
homepageURL (主页URL)打算显示在用户界面里的addon的主页连接.
Examples
<em:homepageURL>http://www.foo.com/&lt;/em:homepageURL>
updateURL (更新URL)连接到一个自定义的更新清单文件上, 它执行了addon可用的更新. 更新URL格式在下边描述. 如果更新URL是允许的, 那么addon处理器会周期性的检查更新清单以确定是否有新的版本可用.
注意:强烈建议updateURL是一个HTTPS(安全的)连接. 非安全的更新URL能被恶意的update.rdf文件所拦截, 然后允许恶意的入侵用户计算机. 另一个解决办法就是, 将你的extension放在AMO上并且完全省去updateURL. 这样将自动能够提供安装的更新.
为了安全的原因, Gecko 1.9应用程序要求如果你指定了一个updateURL, 那么就必须是一个https URL, 或者你必须要包含一个updateKey.
Examples
<em:updateURL>http://www.foo.com/update.cgi?id=%ITEM_ID%&amp;amp;version=%ITEM_VERSION%</em:updateURL>
<em:updateURL>http://www.foo.com/extension/windows.rdf&lt;/em:updateURL>

lovebaidu 发表于 2008-11-15 01:09:31

你发这些贴子有意思吗、?对我们有帮助吗?

lovebaidu 发表于 2008-11-15 01:09:57

对不起。我不应该打击你的积极性。

faunus 发表于 2008-11-15 20:39:35

是的,你也许一时理解不了。
火头软件基本上属于web scraping的
但是未来的发展方应该是web scraping和screenscraping齐头并进,
screen的实现,现有的实现方法多数是基于Mozilla平台,
XUL和Mozilla以及FireFox息息相关。
XUL Explorer是实现XUL的很好工具。
火车除了养小宝宝,重新开始JAVA开发环境的。
也行基于Linux的火车为时不完了。

今天没有看到用处,并不代表将来没有用处。
ali16ls

[ 本帖最后由 faunus 于 2008-11-15 20:41 编辑 ]

sushy 发表于 2008-11-18 15:08:37

很佩服楼主的软件功底和对tcp/ip协议的透彻理解。

上次争议的事情,实在是抱歉。火车老大还委婉的批评了我一下~~~

火车软件目前是基于对文件源码的分析,直接或间接提取url,所以在做采集网址、采集分页和采集多页的时候,有的时候还不是非常精准,特别是在javascript 判断的网址提取中。

我想这一点上,如果能加强对 IE , Firefox 浏览器GUI图形化和各种协议的理解上,完全模拟人工点击获取网址和页面信息,应该可以突破该局限。当然这一点百度google等搜索引擎似乎也做的不够,不然就不会 SEO 的时候有 “javascipt 对百度引擎不够友好”的说法了。

火车软件的开发还需要楼主的大力支持啊,我也不断像楼主学习,虽然有时候文字内容比较抽象,感觉像在听天书,不过一遍学习,一遍百度,还是学到了很多东西。

faunus 发表于 2008-11-20 21:00:07

版主说的不错,
火车干嘛要批评,
本来就是好事情嘛。

faunus 发表于 2008-11-20 21:00:37

~~~

[ 本帖最后由 faunus 于 2008-11-20 21:03 编辑 ]

lbjyuer 发表于 2016-2-9 23:56:19

历史帖子回顾中。
页: [1]
查看完整版本: XUL Explorer 使用教程(原创)