минимальный пример barebones: использование XUL для HTTP POST - PullRequest
2 голосов
/ 29 апреля 2009

Я пытаюсь выяснить, является ли XUL хорошим кандидатом на графические формы в приложениях для интрасети.

Было трудно найти кого-то, кто на самом деле использует , хотя. Поэтому я подумал, что попрошу пример «Привет, мир».

Предположим, у меня есть страница php, которая ничего не делает, кроме отображения любого содержимого, отправленного ей через HTTP POST. (например, http://mysite.com/postdumper.php)

Может ли кто-нибудь показать мне минимальный код, необходимый для создания формы XUL, которая собирает имя, фамилию и возраст, и позволяет мне отправить это по указанному выше URL-адресу?

Любые ссылки, прекрасные руководства или ссылки, которые приводят такой пример, приветствуются.

Ответы [ 3 ]

1 голос
/ 29 апреля 2009

вы можете использовать простые старые формы xhtml при условии, что вы используете его пространство имен в XUL, так как это XML.

1 голос
/ 29 апреля 2009

Я использую его для интранет-приложений и делаю это уже несколько лет. С этого может быть трудно начать, но как только вы поймете несколько вещей, вам будет легко заставить его работать.

  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>

Я также хотел бы подчеркнуть, что вы должны изучить возможность отправки данных между XUL и PHP с использованием инфраструктуры XMLRPC или JSON. Поддержка JSON будет встроена в Firefox 3.5.

Другое дело, что до появления Firefox 3.5 вы не можете выполнять межсайтовый XMLHttpRequest, если не выполните некоторые настройки в about: config. Это означает, что только xul на mysite.com может отправлять запросы на mysite.com/postdump.php.

1 голос
/ 29 апреля 2009

Создайте серию , добавьте кнопку и, прочитав данные из текстовых полей, отправьте их, используя xmlhttprequest . Вы можете использовать GET или POST.

...