2

我试图弄清楚 XUL 是否是 Intranet 应用程序中 GUI 表单的良好候选者。

但是很难找到真正使用它的人。因此,我想我会要求一个 hello world 风格的例子。

假设我有一个 php 页面,它只显示通过 HTTP POST 发送给它的任何内容。(例如, http: //mysite.com/postdumper.php

谁能告诉我创建一个收集名字、姓氏和年龄并允许我将其发布到上面的 URL 的 XUL 表单所需的最少代码?

任何提供此类示例的链接或精美手册或参考资料都非常受欢迎。

4

3 回答 3

1

我将它用于 Intranet 应用程序,并且已经这样做了几年。开始可能很难,但是一旦你了解了一些事情,就很容易让它为你工作。

  1. 几乎忘记了您对 HTML 的所有了解。它不是 HTML,有很多事情你不能用旧的方式做,但是你可以做很多其他事情。

  2. 一切明智的通信都是用 javascript 完成的,而不是表单。

  3. 覆盖与 div 无关。但它对于拆分大型项目的设计非常有用。

  4. 如果 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 += "&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 发送请求。

于 2009-04-29T06:58:51.683 回答
1

创建一系列 <textbox>,添加一个提交 <button>,从文本框中读取数据后,使用xmlhttprequest发送。您可以使用 GET 或 POST。

于 2009-04-29T01:23:03.393 回答
1

您可以使用普通的旧 xhtml 表单,前提是您在 XUL 中使用它的命名空间,因为它是 XML。

于 2009-04-29T01:31:50.597 回答