Минимальный пример barebone-системы:использование XUL для HTTP POST

StackOverflow https://stackoverflow.com/questions/800449

  •  03-07-2019
  •  | 
  •  

Вопрос

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

Трудно найти человека, который действительно использует хотя это.Поэтому я решил попросить пример в стиле hello world.

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

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

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

Это было полезно?

Решение

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

  1. Забыли почти все, что знали об HTML.Это НЕ HTML, и есть много вещей, которые вы не можете сделать по-старому, но есть невероятное количество других вещей, которые вы можете сделать вместо этого.

  2. Все, что касается общения, осуществляется с помощью JavaScript, а не форм.

  3. Оверлеи не имеют ничего общего с div.Но это чрезвычайно полезно для разделения дизайна на более крупные проекты.

  4. Если страница 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>

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

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

Другие советы

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top