我试图弄清楚xul是否是intranet应用程序中gui表单的好候选。
但很难找到真正使用它的人。因此我想我需要一个hello世界风格的例子。
假设我有一个php页面,它只显示通过http post发送到它的任何内容。(例如,http://mysite.com/postdumper.php)
有谁能告诉我创建一个收集名字、姓氏和年龄的xul表单所需的最少代码,并允许我将其发布到上面的url?
任何提供这样一个例子的链接、精美的手册或参考资料都是非常受欢迎的。
最佳答案
我将它用于一个intranet应用程序,并且已经做了几年了。一开始可能很难,但一旦你了解了一些事情,就很容易让它为你工作。
几乎忘记了你所知道的关于html的一切。它不是html,有很多事情你不能用老方法去做,但是还有很多其他事情你可以去做。
所有的通信都是用javascript完成的,而不是表单。
覆盖层与div无关,但它对于分解较大项目的设计非常有用。
如果一个xul页面在所有标记中的格式都不正确,那么该页面甚至不会显示。
有一个google群组,主要目的是讨论远程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发送请求。