用HTA來自定義你的Web應用程序

用HTA來自定義你的Web應用程序

 如果你搭上Web的彩車已經有一段時間了,那麼你一定會很欣賞Web開發爲創建簡單的n層應用程序所提供的便利。但是,如果想要創建一個更加強大的基於Web的應用程序(它整合了客戶端的組件),那麼你就有可能會被各臺機器的安全設置以及瀏覽器菜單條和工具條的配置而嚇倒。

繞過這個問題的一個理想方法是提供一個“瀏覽器”,它能夠推倒安全這堵牆,並能夠讓你的主頁內置進各種功能。幸運的是,Internet Explorer 5.0+允許你通過HTML應用程序(HTA)來實現這一點。

HTA事實上就帶有.hta擴展名和特殊標籤的Web頁面,這個特殊的標籤<HTA:APPLICATION>允許你控制這個應用程序的用戶界面(UI)。<HTA:APPLICATION>標籤位於<HEAD>標籤裏,它能夠允許你控制下面這樣的事情,諸如是否在所含的窗口裏顯示一個標題欄,或者顯示最大最小化按鈕。

<HTA:APPLICATION>標籤還讓你能夠訪問客戶的機器而不用擔心安全的限制。當你需要在客戶端創建被腳本標記爲不安全的組件時,它就很有用處了;因此,你就能夠避開安全錯誤以及令人討厭的彈出窗口。在嘗試運用HTA這種方式之前,你應該消除掉應用這種方法可能帶來的任何安全風險。

下面就是我正在處理的一種狀況:我有一個第三方的Web應用程序放在服務器上運行,它允許同原有的一個數據庫系統進行通信。在某一臺工作站上,我需要使用這個Web應用程序裏的信息來創建一個條形碼的標籤。爲了把條形碼的信息送到打印機去,我需要使用MSComm組件向條形碼打印機寫入串行數據。(如何使用MSComm組件的細節不是本文所涉及的範圍。)

爲了使用這個組件,我在自己指定了組件CLASSID的HTML頁面里加入了一個OBJECT標籤。在普通的Web頁面裏,一旦我嘗試使用這個組件,其結果就要依賴於ActiveX對象的三個設置項:禁止(Disable)、提示(Prompt),或者允許(Enable)。如果設置是“禁止”,那麼就完全無法訪問到完成這項任務所需要的組件的屬性。如果用戶選擇“提示”,那麼用戶就有可能選擇進行錯誤的動作——也就說,你可以能會得到那些令人討厭的彈出式窗口。如果設置是“允許”,那麼運行這個ActiveX組件不會碰到問題;但是,你有可能會碰到其他頁面上不安全組件所帶來的安全風險。

所以,如果我能夠解決這些安全問題,我就應該能夠運行這些組件。這就是爲什麼會用到HTA的原因。我可以創建這個Web頁面,並添加被腳本標記爲不安全的組件。我還可以控制所含窗口的一些屬性。在本例中,所含窗口會作爲一個常規對話框出現,它帶有最大最小化按紐以及一個含有HTA標題的標題欄。我還希望窗口的狀態是最大化的,並含有一個工具條的按鈕。我甚至爲這個應用程序提供了一個名字。下面這個<HTA:APPLICATION>的例子顯示了應該如何控制這些屬性:


<HEAD>
<TITLE>Test HTA</TITLE>
<HTA:APPLICATION ID="testHTA" APPLICATIONNAME="Test HTA" BORDER="dialog"
 CAPTION="yes" SHOWINTASKBAR="yes" SYSMENU="yes" WINDOWSTATE="maximize">
</HEAD>

工具欄、地址欄,以及菜單欄都不會像在IE裏的那樣,它們在這個窗口裏沒有被顯示出來。這就給予你對界面設計更多的控制權。通過了解IE 5.0+的強大功能,你能夠使用簡單的Web技術創造功能強大的應用程序。

要了解更多關於HTA的信息,請訪問微軟的Web網站

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章