谈谈 Mozilla 的 XUL , 谁有兴趣?

glassprogrammer 2002-07-10 11:32:02
把下面代码另存为一个 .xul 文件, 用 Mozilla 打开看看 :)
======================================================
<?xml version="1.0" encoding="GBK"?>

<?xml-stylesheet href="chrome://global/skin/" type="text/css"?>

<window
id="example-window" title="Example 5.1.1"
xmlns:html="http://www.w3.org/1999/xhtml"
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">

<toolbox>
<menubar id="sample-menubar">
<menu id="file-menu" label="File">
<menupopup id="file-popup">
<menuitem label="New"/>
<menuitem label="Open"/>
<menuitem label="Save" style="color:green"/>
<menuseparator/>
<menuitem label="退出" style="color:red;font-size:12px"/>
</menupopup>
</menu>
<menu id="edit-menu" label="Edit">
<menupopup id="edit-popup">
<menuitem label="Undo"/>
<menuitem label="Redo"/>
</menupopup>
</menu>
</menubar>
</toolbox>
<spacer style="height: 10px"/>
<tabbox>
<tabs>
<tab label="Mail"/>
<tab label="News"/>
</tabs>
<tabpanels>
<tabpanel id="mailtab" orient="vertical">
<checkbox label="Automatically check for mail"/>
<tree flex="1">
<treecols>
<treecol id="firstname" label="First Name" primary="true" flex="3"/>
<treecol id="lastname" label="Last Name" flex="7"/>
</treecols>
<treechildren>
<treeitem container="true" open="true">
<treerow>
<treecell label="Guys"/>
</treerow>

<treechildren>
<treeitem>
<treerow>
<treecell label="Bob"/>
<treecell label="Carpenter"/>
</treerow>
</treeitem>
<treeitem>
<treerow>
<treecell label="Jerry"/>
<treecell label="Hodge"/>
</treerow>
</treeitem>
</treechildren>
</treeitem>
</treechildren>
</tree>
</tabpanel>
<tabpanel id="newstab" orient="vertical">
<vbox orient="horizontal">
<menulist editable="true" flex="1">
<menupopup>
<menuitem label="www.mozilla.org"/>
<menuitem label="www.xulplanet.com"/>
<menuitem label="www.dmoz.org"/>
</menupopup>
</menulist>
<button label="Clear News Buffer"/>
</vbox>
<spacer style="height: 200px"/>
</tabpanel>
</tabpanels>
</tabbox>

</window>
...全文
368 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
glassprogrammer 2002-07-12
  • 打赏
  • 举报
回复
算了, 结贴
glassprogrammer 2002-07-12
  • 打赏
  • 举报
回复
算了, 结贴
glassprogrammer 2002-07-11
  • 打赏
  • 举报
回复
看看这 :
http://bulletin.linuxshop.idv.tw/showthread.php?threadid=718

【Mozilla,通向自由世界的橋樑】

  Mozilla的起源要追溯到1998年,Netscape在那場著名的瀏覽器大戰中失敗了。為了繼續戰鬥,Netscape開放了自己的源碼,創建了Mozilla計劃。
  Mozilla不是Netscape的簡單改進,它的目標是要發動一場瀏覽器領域以外的「編程革命」。這是一個在Netscape基礎上徹底重新構架的產品。經過三年多的長跑,Mozilla很快就要成功了:預計在2002年4月發表具有里程碑意義的正式版本:Mozilla 1.0。

  Mozilla最激動人心之處在於創造了XUL語言:一種以XML文檔來描述圖形用戶界面的語言。XUL配合JavaScript,能夠實現非常複雜的用戶界面。此外還可以通過更換Skin和Locale輕鬆地改變界面外觀和語言,通過RDF實現表現和資料相分離。
  XUL使得開發高質量用戶界面變得前所未有地容易,Mozilla本身的界面就是用XUL寫的。
  為了實現用腳本語言實現不了的功能,Mozilla引入了XPCOM:跨平台組件對像模型,開發者可以開發本地XPCOM組件,供腳本調用。Mozilla本身帶有豐富的XPCOM組件,可以實現如文件操作、網絡、剪貼板、拖放等常用功能。
  Mozilla還引入了跨平台安裝技術,用戶可以把基於Mozilla的應用安裝到本地,避免每次下載。
  此外,就對W3C WEB標準支援的廣度和深度而言,Mozilla都勝過IE。
  從上可以看出,Mozilla不只是一個功能完善的瀏覽器,更是一個功能強大的桌面應用平台,在這個平台上開發的應用能夠跨作業系統運行(並且在不同作業系統下有著一致的界面)。微軟幾年前全力打擊Netscape時最擔心的事發生了!

  Mozilla為我們的應用開發提供了全新的思路。筆者有豐富的Java平台、Windows平台、以及WEB應用開發經驗,對.NET也有瞭解。在對Mozilla進行一番研究後,發現在Mozilla平台上開發應用有以下優勢:
   1. 當前管理軟體有向B/S結構轉換的趨勢。由於多數用戶不能完全擺脫Windows,可以把Mozilla作為統一的應用前端,用戶可以根據需要靈活選擇計算機配置,打造Windows和Linux共存的協同辦公環境。
   2. 現在Windows桌面還佔據統治地位,從市場考慮多數軟體廠商不可能專門為Linux開發桌面應用。Java、QT庫雖然也可以實現跨平台,但它們的技術難度比較大,另外也缺乏B/S結構的優點。Mozilla可以打消一些軟體廠商的顧慮,吸引他們開發跨平台應用。
   3. 由於XUL以結構良好的XML文檔描述用戶界面,可以很容易地用轉換程序把XUL程序轉換為其它語言的程式,保護研發投資。
   4. 既使把應用鎖定在單一的微軟平台上,Mozilla也有其優勢。比如和.NET比較,首先,.NET的技術難度比Mozilla大得多,其次,.NET框架不支援Win95、Win98、WinME、WinNT,而Mozilla支援從Win95開始的全線Windows產品。和IE比較,Mozilla可以用更少的努力實現比IE更好的用戶界面。雖然Mozilla沒有IE的捆綁優勢,但Mozilla經過精心設計,其安裝程序當前還不到10M,並且是不依賴於註冊表、環境變量的「綠色軟體」,安裝、卸載都極少出錯,而IE由於和Windows結合太緊密,卸載、安裝IE常會引發系統的不穩定。
   5. 培訓XUL開發者相對容易,可以減少軟體廠商的人力資源成本。

  Mozilla能極大地提升Linux的桌面競爭力,個人認為Mozilla也是迄今為止最具創新的開放源碼項目。

  有了好的產品還需要宣傳與支援才能成功,Mozilla背後最堅定的支援者是AOL,AOL擁有強大的傳媒力量及龐大數量的互聯網用戶。如果AOL發動一場新的瀏覽器大戰,微軟必然會嘗到一點失敗的滋味:首先,將導致IE用戶的減少(由於和微軟的協議,AOL當前用的還是IE),微軟「污染WEB規格」戰術會受到牽制;其次,基於Mozilla平台的應用將迅速增長,為用戶向Linux遷移打開方便之門。

  我想再用個比喻來說明Mozilla的重要意義:
  現在軟體界存在一條鴻溝,鴻溝的一面是微軟控制著的封閉世界,另一面是以Linux為代表的自由世界。封閉世界中的許多人想到自由世界去卻跨不過鴻溝。Linux在努力把鴻溝變窄,而微軟卻想方設法加寬鴻溝,因此鴻溝合攏的過程是緩慢的。但只要我們善加利用,Mozilla能夠在鴻溝上架起從封閉世界通向自由世界的橋樑!
blues-star 2002-07-10
  • 打赏
  • 举报
回复
这是那个浏览器定义的XML应用吧?

我觉得就好象<input>被解释成文本框一样,这个只是XML标出来的,好象这个不是标准吧?
glassprogrammer 2002-07-10
  • 打赏
  • 举报
回复
再看看这个 :
=====================================
<?xml version="1.0" encoding="GBK"?>

<?xml-stylesheet href="chrome://global/skin/" type="text/css"?>

<window
id="example-window" title="Example 5.1.1"
xmlns:html="http://www.w3.org/1999/xhtml"
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">

<broadcasterset>
<broadcaster id="b_Editable" disabled="false"/>
</broadcasterset>

<toolbox>
<menubar id="sample-menubar">
<menu id="file-menu" label="File">
<menupopup id="file-popup">
<menuitem label="New" observes="b_Editable"/>
<menuitem label="Open" observes="b_Editable"/>
<menuitem label="Save" observes="b_Editable"/>
<menuseparator/>
<menuitem label="退出" style="color:red;font-size:12px" oncommand="window.close();"/>
</menupopup>
</menu>
<menu id="edit-menu" label="Edit" observes="b_Editable">
<menupopup id="edit-popup">
<menuitem label="Undo"/>
<menuitem label="Redo"/>
</menupopup>
</menu>
</menubar>
</toolbox>
<spacer style="height: 5px"/>
<checkbox label="允许修改" style="font-size:12px" checked="true"
oncommand="var b=document.getElementById('b_Editable');
if (this.checked==true) {
b.setAttribute('disabled','false');
}
else {
b.setAttribute('disabled','true');
}"/>
<spacer style="height: 5px"/>
<tabbox>
<tabs>
<tab label="Mail"/>
<tab label="News"/>
</tabs>
<tabpanels>
<tabpanel id="mailtab" orient="vertical">
<checkbox label="Automatically check for mail" observes="b_Editable"/>
<tree flex="1" observes="b_Editable">
<treecols>
<treecol id="firstname" label="First Name" primary="true" flex="3"/>
<treecol id="lastname" label="Last Name" flex="7"/>
</treecols>
<treechildren>
<treeitem container="true" open="true">
<treerow>
<treecell label="Guys"/>
</treerow>

<treechildren>
<treeitem>
<treerow>
<treecell label="Bob"/>
<treecell label="Carpenter"/>
</treerow>
</treeitem>
<treeitem>
<treerow>
<treecell label="Jerry"/>
<treecell label="Hodge"/>
</treerow>
</treeitem>
</treechildren>
</treeitem>
</treechildren>
</tree>
</tabpanel>
<tabpanel id="newstab" orient="vertical">
<vbox orient="horizontal">
<menulist editable="true" flex="1">
<menupopup>
<menuitem label="www.mozilla.org"/>
<menuitem label="www.xulplanet.com"/>
<menuitem label="www.dmoz.org"/>
</menupopup>
</menulist>
<button label="Clear News Buffer" observes="b_Editable"/>
</vbox>
<spacer style="height: 200px"/>
</tabpanel>
</tabpanels>
</tabbox>

</window>

87,904

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧