我将它用于 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>
我还想强调,您应该考虑使用 XMLRPC 或 JSON 框架在 XUL 和 PHP 之间来回发送数据。JSON 支持将在 Firefox 3.5 中内置。
另一件事是,在 Firefox 3.5 到来之前,除非您在 about:config 中进行一些配置,否则您无法进行跨站点 XMLHttpRequest。这意味着只有 mysite.com 上的 xul 可以向 mysite.com/postdump.php 发送请求。