我试图弄清楚XUL是否适合在Intranet应用程序中使用GUI表单。
虽然很难找到真正使用的人。所以我想我会问一个问候世界风格的例子。
假设我有一个php页面,它只显示通过HTTP POST发送给它的任何内容。 (例如,http://mysite.com/postdumper.php)
有人能告诉我创建收集名字,姓氏和年龄的XUL表单所需的最低代码,并允许我将其发布到上面的URL吗?
非常欢迎提供此类示例的任何链接或精细手册或参考文献。
答案 0 :(得分:1)
创建一系列<文本框>,添加提交<按钮>,并在从文本框中读取数据后,使用xmlhttprequest发送。您可以使用GET或POST。
答案 1 :(得分:1)
如果您在XUL中使用其命名空间,则可以使用普通的旧xhtml表单,因为它是XML。
答案 2 :(得分:1)
我将它用于内部网应用程序并且已经完成了几年。它可能很难开始,但一旦你了解了一些事情,很容易让它适合你。
忘了几乎所有关于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中内置。
另一件事是,除非你在about:config中进行一些配置,否则在Firefox 3.5到达之前你不能进行跨站点XMLHttpRequest。这意味着只有xul on mysite.com才能向mysite.com/postdump.php发送请求。