我试图弄清楚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 += "&amp;lastName="+lastName;
        postData += "&amp;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发送请求。

10-06 08:47
查看更多