在 Mozilla 的安装目录 chrome 下建立

1
2
3
4
5
6
7
8
9
10
11
12
13
chrome/
  xfly/
    content/
      xfly.xul
      xfly.js
      contents.rdf
    locale/
      en-US/
        xfly.dtd
        contents.rdf
    skin/
      xfly.css
      contents.rdf

下面是各个文件的内容:
content
xfly.xul :

?Download xfly.xul
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?xml version="1.0"?>
<?xml-stylesheet href="chrome://global/skin" type="text/css"?>
<?xml-stylesheet href="chrome://xfly/skin" type="text/css"?>
<!DOCTYPE window SYSTEM "chrome://xfly/locale/xfly.dtd" >
<window title="Hello xFly"
  xmlns:html="http://www.w3.org/1999/xhtml"
  width="300"
  height="215"
  onload="centerWindowOnScreen( )">
<script type="application/x-javascript"   
  src="chrome://global/content/dialogOverlay.js" />
<script type="application/x-javascript"   
  src="chrome://xfly/content/xfly.js" />
 <vbox align="left" id="vb">
  <label id="xlabel" 
      value="&label.val;" />
  <image src="http://books.mozdev.org/xfly.gif" />
  <button label="&btn.lbl;" oncommand="greet( );" />
 </vbox>
</window>


xfly.js :

?Download xfly.js
1
2
3
function greet( ) {
  alert("Hello World");
}

contents.rdf :

?Download contents.rdf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?xml version="1.0"?>
<RDF:RDF
    xmlns:RDF="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:chrome="http://www.mozilla.org/rdf/chrome#">
  <!-- list all the packages being supplied -->
  <RDF:Seq about="urn:mozilla:package:root">
    <RDF:li resource="urn:mozilla:package:xfly"/>
  </RDF:Seq>
  <!-- package information -->
  <RDF:Description about="urn:mozilla:package:xfly"
        chrome:displayName="xFly"
        chrome:author="xfly.mozdev.org"
        chrome:name="xfly">
  </RDF:Description>
</RDF:RDF>

locale
xfly.dtd :

?Download xfly.dtd
1
2
<!ENTITY label.val       "Hello, Welcome to the xFly " >
<!ENTITY btn.lbl         "hello xFly " >

contents.rdf :

?Download contents.rdf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?xml version="1.0"?>
<RDF:RDF
    xmlns:RDF="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:chrome="http://www.mozilla.org/rdf/chrome#">
  <RDF:Seq about="urn:mozilla:locale:root">
    <RDF:li resource="urn:mozilla:locale:en-US"/>
  </RDF:Seq>
  <!-- locale information -->
  <RDF:Description about="urn:mozilla:locale:en-US"
        chrome:displayName="English(US)"
        chrome:author="xfly.mozdev.org"
        chrome:name="en-US"
        chrome:previewURL="http://www.mozilla.org/locales/en-US.gif">
    <chrome:packages>
      <RDF:Seq about="urn:mozilla:locale:en-US:packages">
        <RDF:li resource="urn:mozilla:locale:en-US:xfly"/>
      </RDF:Seq>
    </chrome:packages>
  </RDF:Description>
</RDF:RDF>

skin
xfly.css :

?Download xfly.css
1
2
xlabel { font-weight: bold; }
window  { background-color: white; }

contents.rdf :

?Download contents.rdf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?xml version="1.0"?>
<RDF:RDF
    xmlns:RDF="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:chrome="http://www.mozilla.org/rdf/chrome#">
  <RDF:Seq about="urn:mozilla:skin:root">
    <RDF:li resource="urn:mozilla:skin:classic/1.0" />
  </RDF:Seq>
  <RDF:Description about="urn:mozilla:skin:classic/1.0">
    <chrome:packages>
      <RDF:Seq about="urn:mozilla:skin:classic/1.0:packages">
        <RDF:li resource="urn:mozilla:skin:classic/1.0:xfly"/>
      </RDF:Seq>
    </chrome:packages>
  </RDF:Description>
</RDF:RDF>

然后,在 chrome 目录下的 installed-chrome.txt 文件的末尾添加

1
2
3
content,install,url,resource:/chrome/xfly/content/
skin,install,url,resource:/chrome/xfly/skin/
locale,install,url,resource:/chrome/xfly/locale/en-US/

然后运行 mozilla -chrome chrome://xfly/content

xfly1.png

点击 hello xfly 按钮后

xfly2.png

具体的每个文件的作用以后再解释好了…

Related posts:

  1. DOM Inspector + XULRunner
  2. XULRunner 的 “Hello world”
  3. 目前的进展(Mozilla Plugin)
  4. Get DOM CSS properties by using headless Mozilla
  5. 关于 Mozilla 的 Plugin 编译

Tags:



Leave a Comment