最基本的最小示例:使用 XUL 进行 http POST

发布于 2024-07-18 03:04:25 字数 401 浏览 6 评论 0原文

我试图弄清楚 XUL 是否适合 Intranet 应用程序中的 GUI 表单。

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

假设我有一个 php 页面,除了显示通过 HTTP POST 发送给它的任何内容之外什么也不做。 (例如,http://mysite.com/postdumper.php

任何人都可以向我展示最低限度的内容吗?创建一个 XUL 表单来收集名字、姓氏和年龄,并允许我将其 POST 到上面的 URL 需要编写代码吗?

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

I am trying to figure out if XUL is a good candidate for GUI forms in intranet apps.

It's been difficult to find anyone who actually uses it though. Therefore I thought I'd ask for a hello world style example.

Suppose I have a php page that does nothing but display any content sent to it via HTTP POST. (e.g., http://mysite.com/postdumper.php)

Can anyone show me the bare minimum code it would take to create an XUL form that collects firstname, lastname, and age, and allows me to POST that to the URL above?

Any links or Fine Manuals or references that give such an example are more than welcome.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

若相惜即相离 2024-07-25 03:04:26

我将它用于 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 += "&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 之间来回发送数据。 Firefox 3.5 中将内置 JSON 支持。

另一件事是,在 Firefox 3.5 到来之前,除非您在 about:config 中进行一些配置,否则您无法执行跨站点 XMLHttpRequest。 这意味着只有 mysite.com 上的 xul 可以向 mysite.com/postdump.php 发送请求。

I use it for an intranet application and have done that for a few years now. It can be hard to start with, but once you understand a few things it's easy to make it work for you.

  1. Forgot almost everything you knew about HTML. It's NOT HTML and there are alot of things you can't do the old way, but then there are an incredible amount of other things you can do instead.

  2. Everything communication wise is done with javascript, and not forms.

  3. Overlays have nothing to do with div's. But it's hugely useful for splitting up a design for larger projects.

  4. If an XUL page is not correctly formated in all tags, the page won't even display.

There is a google groups where the main purpose is to discuss remote XUL :
http://groups.google.com/group/remotexul

It's not quite active yet, but more members are more than welcome :)

Here is an minimal example:

<?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>

I would also like to stress that you should look into sending data back and forth between XUL and PHP using a XMLRPC or JSON framework instead. JSON support will come as built-in in Firefox 3.5.

Another things is that until Firefox 3.5 arrives you cannot do cross-site XMLHttpRequest's unless you do some configuration in about:config. Which means that only xul on mysite.com can send requests to mysite.com/postdump.php.

娇纵 2024-07-25 03:04:26

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

Create a series of < textbox>'s, add a submit < button>, and after reading the data from the textboxes, send it using xmlhttprequest. You can use GET or POST.

一曲琵琶半遮面シ 2024-07-25 03:04:26

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

you can use plain old xhtml forms provided that you use its namespace in XUL since it is XML.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文