我將它用於Intranet應用程序,並且已經這麼做了幾年。一開始可能很難,但一旦你理解了一些事情,很容易讓它爲你工作。
忘記了幾乎所有關於HTML的知識。它不是HTML,並且有許多事情你不能以舊的方式來完成,但是接下來有一些你可以做的其他事情是令人難以置信的。
所有的通信明智的是用JavaScript來完成的,而不是表單。
疊加與div無關。但對於爲大型項目分拆設計非常有用。
如果XUL頁面在所有標籤中的格式不正確,頁面將不會顯示。
有一個谷歌的羣體,其主要目的是討論遠程XUL: http://groups.google.com/group/remotexul
這不是很積極呢,但更多的成員非常歡迎:)
這裏是一個更小例子:
<?xml version="1.0"?>
<?xml-stylesheet href="chrome://global/skin/" type="text/css"?>
<window id="yourwindow" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
<script language="javascript">
function send()
{
var firstName = document.getElementById('firstName').value;
var lastName = document.getElementById('lastName').value;
var age = document.getElementById('age').value;
var postData = "firstName="+firstName;
postData += "&lastName="+lastName;
postData += "&age="+age;
var req = new XMLHttpRequest();
req.open("POST", "/test.php", false);
req.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
req.send(postData);
alert(req.responseText);
}
</script>
<hbox>
<vbox>
<hbox>
<label value="First Name" control="firstName"/>
<textbox id="firstName"/>
</hbox>
<hbox>
<label value="Last Name" control="lastName"/>
<textbox id="lastName"/>
</hbox>
<hbox>
<label value="Age" control="age"/>
<textbox id="age" value="30" type="number"/>
</hbox>
<button onclick="send()" label="Send"/>
</vbox>
</hbox>
</window>
我還想強調的是,你應該看看XUL和PHP之間發送數據來回改爲使用XMLRPC或JSON框架。 JSON支持將在Firefox 3.5中內置。
另一件事是,直到Firefox 3.5到達,你不能做跨站點XMLHttpRequest的,除非你在about:config中做一些配置。這意味着只有mysite.com上的xul才能發送請求到mysite.com/postdump.php。