mozilla

比较版本

关于Chrome URL

更改版本

修订版 276535:

由 alzhu 在 进行的修订 276535

修订版 223368:

由 alzhu 在 进行的修订 223368

标题:
关于Chrome URL
关于Chrome URL
网址缩略名:
XUL_教程/关于Chrome_URL
XUL_教程/关于Chrome_URL
内容:

修订版 276535
修订版 223368
t7    <div align="right">t
8      <a href="cn/XUL_%e6%95%99%e7%a8%8b/XUL%e7%9a%84%e7%bb%93%e6
>%9e%84">&lt;&lt; 前页</a> <a href="cn">后页 &gt;&gt;</a> 
9    </div>
10    <h3 id="Chrome.E7.BB.9F.E4.B8.80.E8.B5.84.E6.BA.90.E5.AE.9A.E
>4.BD.8D.E5.99.A8.28URL.29" name="Chrome.E7.BB.9F.E4.B8.80.E8.B5.8 
>4.E6.BA.90.E5.AE.9A.E4.BD.8D.E5.99.A8.28URL.29"> 
11      Chrome统一资源定位器(URL)
12    </h3>
13    <p>
14      下面的部分将描述如何关联(引用)XUL文档和其他的chrome文件。
15    </p>
16    <p>
17      <big><strong>Chrome统一资源定位器(URL)</strong></big>
18    </p>
19    <p>
20      XUL文件可以像HTML文件一样被一个普通的HTTP URL(或者其他任何类型的URL)关联。尽管如此,用于Mozil
>la的chrome系统的软件包可以用特殊的chrome URL关联。Mozilla自带的软件包伴随Mozilla已经安装好,但你可 
>以注册自己的包。 
21    </p>
22    <p>
23      软件包安装过之后具有不受安全限制的优点——安全限制对于很多程序来说都是必须的。相对于其他类型的URL来说,另外一个好处
>是它们可以自动处理多个主题和语言选项。举例来说,一条chrome URL允许你关联(引用)某个主题当中的一个文件,比如说是图片,与 
>此同时你不需要知道用户当前使用的是哪个主题。只要不同主题里面的对应文件名相同,你总是可以通过chrome URL来引用这个文件。M 
>ozilla会找到文件的路径并返回正确的数据。这也就意味着,软件包安装的位置与是否能访问它没有关系。chrome URL与文件物理 
>存放位置无关,这使得写含有很多文件的程序变得简单了,因为你无需关心文件位置的细节。 
24    </p>
25    <p>
26      Chrome统一资源定位器(URL)的基本语法规则如下:
27    </p>
28    <table>
29      <tbody>
30        <tr>
31          <td>
32            <pre>
33chrome://&lt;package name&gt;/&lt;part&gt;/&lt;file.xul&gt;
34</pre>
35          </td>
36        </tr>
37      </tbody>
38    </table>
39    <p>
40      上面的<code>&lt;package name&gt;</code>是软件包的名字,比如是编辑器或聊天工具。<co
>de>&lt;part&gt;</code>可以是'content','skin'或'locale',这取决于你的需要。'file 
>.xul'是文件名。 
41    </p>
42    <p>
43      <strong>示例</strong>:<a class=" external" href="chrome://mes
>senger/content/messenger.xul" rel="freelink">chrome://messenger/c 
>ontent/messenger.xul</a> 
44    </p>
45    <p>
46      这个例子关联到的是'content'中的messenger窗口。将'content'替换为'skin'并改掉文件名,就
>可以指向皮肤中的某个文件。同样的,用'locale'替换'content'后,我们就能指向语言中的文件。 
47    </p>
48    <p>
49      当你打开一个chrome URL,Mozilla在其已安装包列表中查找,尝试定位到与URL中包名相同的JAR文件和目录
>.chrome URL和JAR文件之间的对应关系由chrome目录中的'清单'(manifest)文件来指定。如果你把messen 
>ger.jar移动到别的地方,并相应地更新'清单'文件中的信息,Thunderbird(译者注:此处Thunderbird是上文中 
>提到的messenger)仍然能够正确工作,因为它不依赖特定的安装位置。利用chrome URL我们可以脱离Mozilla中例如包 
>的位置等细节信息。类似地,如果用户改变了主题,'skin'部分的chrome URL实际所指向的就是另外的一套文件,但XUL和脚本 
>无需改变。 
50    </p>
51    <p>
52      下面是更多的示例。注意例子中URL是如何避免指定使用某个特定的主题或者语言,以及如何避免指定特定目录的。
53    </p>
54    <table>
55      <tbody>
56        <tr>
57          <td>
58            <pre>
59chrome://messenger/content/messenger.xul
60chrome://messenger/content/attach.js
61chrome://messenger/skin/icons/folder-inbox.png
62chrome://messenger/locale/messenger.dtd
63</pre>
64          </td>
65        </tr>
66      </tbody>
67    </table>
68    <p>
69      要关联到子目录,你只要在chrome URL的最后加上目录名就可以。下面的这些URL关联到bookmarks窗口,这里
>列出来了适合Mozilla和Firefox的版本——因为两者软件包的名字有差异: 
70    </p>
71    <table>
72      <tbody>
73        <tr>
74          <td>
75            <pre>
76chrome://communicator/content/bookmarks/bookmarksManager.xul (Moz
>illa) 
77chrome://browser/content/bookmarks/bookmarksManager.xul (Firefox)
78</pre>
79          </td>
80        </tr>
81      </tbody>
82    </table>
83    <p>
84      chrome URL在任何普通URL可以使用地方一样能用,甚至你可以在Mozilla的浏览器窗口(译者注:地址栏)中直
>接输入。当在浏览器地址栏中输入上面提到的URL之一,你会发现窗口会像网页一样显示出来,而且大多数功能和在单独的窗口一样可以正常使用 
>。但是,有些对话框可能工作不正常,那可能是因为需要由父窗口在打开他们的时候传递一些参数。 
85    </p>
86    <p>
87      你还将会遇到不带文件名的chrome URL,比如:
88    </p>
89    <table>
90      <tbody>
91        <tr>
92          <td>
93            <pre>
94chrome://browser/content/
95</pre>
96          </td>
97        </tr>
98      </tbody>
99    </table>
100    <p>
101      这种情况只有给出了包名和模块名。这类的引用(关联)会自动从目录中选择一个合适的文件。对于content来说,与包同名并
>带有.xul后缀的文件会被选中。在上面的例子中,显示的会是'browser.xul'。对于messenger包,messenger 
>.xul会被显示。当你创建自己的包时,你需要为你的主窗口创建一个和软件包同名的文件,这样它就能被上面这种短形式的URL关联。这样带 
>来的便利是只要用户知道包的名字,他就能打这个应用程序。当然了,对于修改浏览器界面的扩展(extensions)来说,用户不需要知道 
>URL,因为扩展通过用户界面来显示自身。 
102    </p>
103    <p>
104      对于皮肤而言,包名.css被选中;对于语言,选中的是包名.dtd。
105    </p>
106    <p>
107      需要记住的是,chrome URL与它在磁盘上的位置无关。URL的第一部分两个元素是包名和模块(content,ski
>n或locale)。将内容文件放在叫'content'的目录是很普遍的事情,这和惯例不符,这些文件会被放在一个完全不同的结构中。 
108    </p>
109    <hr size="2" width="80%">
110    <p>
111      (<a href="/cn" title="cn">下一部分</a>) 在接下来的部分,我们将看看如何创建'清单'(m
>anifest)文件和包。 
112    </p>
113    <div align="right">
114      <a href="/cn/XUL_%E6%95%99%E7%A8%8B/XUL%E7%9A%84%E7%BB%93%E
>6%9E%84" title="cn/XUL_教程/XUL的结构">&lt;&lt; 前页</a> <a href="/cn/XU 
>L_%E6%95%99%E7%A8%8B/%E5%85%B3%E4%BA%8EContents.rdf" title="cn/XU 
>L_教程/关于Contents.rdf">后页 &gt;&gt;</a> 
115    </div>

返回历史