2009-04-29 24 views
2

我想弄清楚XUL是否是Intranet應用程序中GUI窗體的良好候選者。準系統最小的例子:使用XUL到http POST

很難找到其實使用的人。所以我想我會問一個你好世界風格的例子。

假設我有一個php頁面,除了顯示通過HTTP POST發送給它的任何內容。 (例如,http://mysite.com/postdumper.php

任何人都可以看到我創建一個收集名字,姓氏和年齡的XUL表單,並允許我將它發佈到上面的URL的最低代碼?

任何鏈接或精美的手冊或引用這樣的例子都是值得歡迎的。

回答

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> 

我還想強調的是,你應該看看XUL和PHP之間發送數據來回改爲使用XMLRPC或JSON框架。 JSON支持將在Firefox 3.5中內置。

另一件事是,直到Firefox 3.5到達,你不能做跨站點XMLHttpRequest的,除非你在about:config中做一些配置。這意味着只有mysite.com上的xul才能發送請求到mysite.com/postdump.php。

1

創建一系列<文本框>,添加提交<按鈕>,並從文本框中讀取數據後,使用xmlhttprequest發送。您可以使用GET或POST。

1

如果您在XUL中使用它的名稱空間,那麼您可以使用普通的舊式xhtml表單,因爲它是XML。

相關問題