建站知識

網站資訊動態(tài),網站建設知識,網站優(yōu)化SEO,營銷型網站建設,手機網站建設,搜索引擎營銷,常見問題解答,外貿網站建設等相關知識與動態(tài)。

您當前所在位置:首頁 > 建站知識 > 網站建設知識 > 正文

VBScript和JScript互相調用方法

2011-12-17
ASP具備管理不同語言腳本程序的能力,能夠自動調用合適的腳本引擎以解釋腳本代碼和執(zhí)行內置函數(shù)。ASP開發(fā)環(huán)境提供了兩種腳本引擎,即VBScript(缺?。┖蚃Script。不過,開發(fā)者并沒有被限制于只能使用這兩種語言,只要能夠提供合適的ActiveX腳本引擎就能使用任何腳本語言。   腳本語言的選擇往往基于許多不同原因:它可能是開發(fā)者最為熟悉的語言,可能是對給定工程來說能夠提供最多特色支持的,也有可能是最具效率的。不同的環(huán)境和要求使得我們在選擇腳本語言時注重不同的因素,同時也使得我們在某些時候面臨選定的腳本語言不能直接提供其它語言固有的函數(shù)這一問題,或某個腳本已經寫成但用的卻是另外一種腳本語言。   此時應該怎么辦?是否需要用當前所用的腳本語言重寫這些腳本?或者說,是否有可能在一種腳本語言中調用其它腳本語言的內置函數(shù)?本文要說明的就是在ASP應用中如何讓VBScript腳本和JScript腳本交互以最大限度地獲得兩種腳本語言的特色支持。   一、VBScript和JScript的內置函數(shù)   在VBScript和JScript中,有大量的內置函數(shù)功能是相同或類似的。然而,在一種腳本語言中內置的函數(shù)并非總是在另外一種腳本語言中也有對應的函數(shù)。例如,VBScript提供了許多用于操作字符串和格式化數(shù)據的函數(shù),這些函數(shù)在JScript中并不存在。這些函數(shù)包括StrReverse()、Filter()以及FormatCurrency()等。在另一方面,JScript所提供的用于管理數(shù)組、字符串編碼等的函數(shù)在VBScript中也沒有定義,如join()、reverse()、pow()、位操作、escape()和unescape()等。   那么,如果在JScript程序中需要一個VBscript函數(shù)該怎么辦呢?   二、異種腳本的互相調用   如果需要在JScript腳本中調用一個VBScript中內置的函數(shù),則應該寫一個VBScript用戶定義函數(shù)(在這里調用VBScript內置函數(shù)),然后在JScript腳本中象調用公用JScript函數(shù)一樣調用這個用戶定義函數(shù)。   例如,如果要調用的VBSCript內置函數(shù)是FormatCurrency(),則可以聲明如下自定義函數(shù):      接下來在JScript代碼中就可以象普通JScript函數(shù)一樣調用FormatValue()了。用類似的方法也可以實現(xiàn)VBScript代碼調用JScript函數(shù)。   應用同樣的規(guī)則,我們可以在任何腳本內調用任何用戶定義函數(shù)。不過,從JScript腳本內調用一個不帶參數(shù)的VBScript過程(Sub)時應略加注意,此時在JScript中應該象調用一個不帶參數(shù)的JScript函數(shù)一樣調用它,如用foo()調用VBScript Sub foo過程。   三、數(shù)據共享   在某些情形下混合運用VBScript和JScript函數(shù)是非常有用的,但在不同語言腳本之間共享數(shù)據也可能很有用。實現(xiàn)這種共享的方法很簡單:不管使用的是什么語言,只要是在頁面級聲明的變量就可以任意引用。   對象的使用方法也相似,可以任意選用合適的語言讀取、修改屬性或調用對象的方法。當然給定對象的屬性和方法是由創(chuàng)建該對象實例的語言所定義的。正如上例VBScript的過程調用,當從JScript中調用一個不帶參數(shù)的VBScript對象的方法時,其調用方法也遵從JScript的調用規(guī)則,反之亦然。   四、數(shù)組管理   數(shù)組共享問題稍微復雜一點。雖然數(shù)組也象其它變量一樣可以在不同語言腳本之間共享,但必須注意兼容方面的問題。   VBScript數(shù)組在JScript下可以用VBScript的符號引用,即用myArray(2)引用數(shù)組元素而不是JScript的數(shù)組元素引用符號myArray[2]。此外,還可以使用一個特殊的JScript對象——VBArray對象將VBScript數(shù)組轉換為JScript數(shù)組。下面的代碼從VBScript數(shù)組myVBArray創(chuàng)建JScript數(shù)組myJSArray:  var Temp = new VBArray(myVBArray)  var myJSArray  myJSArray = Temp.toArray()   上述代碼首先創(chuàng)建一個臨時的VBArray對象,然后使用它的toArray()方法將自己轉換為JScript數(shù)組。此后就可以象普通JScript數(shù)組一樣使用myJSArray,如myJSArray[1]。但應當注意的是,toArray()方法將把一個多維的VBArray轉換為一維的JScript數(shù)組。   從VBScript中引用JScript數(shù)組更為復雜。雖然在VBScript中我們可以直接訪問JScript數(shù)組相關的方法和屬性,但沒有直接訪問JScript數(shù)組的單個元素的方法。也就是說,我們可以在VBScript腳本中讀取JScript數(shù)組的長度屬性,如下所示:   x = myJSArray.length   但無法直接讀取該數(shù)組的單個元素,下面的VBScript代碼是不正確的:   x = myJSArray(3)   解決該問題的一個可行的方法是執(zhí)行一個轉換過程,如下面的代碼所示,此處假定VBScript是缺省的腳本語言: <%   Dim Temp   Dim myVBArray   Temp = myJSArray.join(", ")   myVBArray = Split(Temp, ", ") %>  此處的JScript join()方法將數(shù)組myJSArray元素轉換到一個以逗號為分割符的字符串,VBScript Split()函數(shù)將字符串轉換為VBScript數(shù)組。注意這里我們是在VBScript環(huán)境下調用JScript的join方法。依照此例,我們可以通過自定義VBScript函數(shù)來模擬JScript的VBArray對象的toArray()方法以實現(xiàn)JScript數(shù)組到VBScript數(shù)組的轉換。   五、小結   在同一個ASP工程內靈活選用不同腳本語言具有許多優(yōu)點,這些腳本之間的交互能力更為開發(fā)者集成不同語言所提供的內置函數(shù)和其它功能帶來了更多的機會,同時也使得實現(xiàn)既可用于VBScript也可用于JScript環(huán)境的通用腳本庫成為可能。

以上部分內容(文字、圖片)收集于互聯(lián)網,版權歸原作者所有。感謝每一位辛勤著寫的作者,感謝每一位的分享。免責聲明:如有侵犯您的原創(chuàng)版權請告知,我們將盡快刪除相關內容,感謝您的理解與支持。
上一篇:如何選擇服務器線路? 下一篇:如何選擇操作系統(tǒng)?

服務項目查看更多

免責聲明

非常感謝您訪問我們的網站,并請您仔細閱讀本聲明的所有條款:

1、本站部分內容來源自網絡,涉及到的部分文章和圖片版權屬于原作者,本站轉載僅供大家學習和交流,切勿用于任何商業(yè)活動。

2、本站不承擔用戶因使用這些資源對自己和他人造成任何形式的損失或傷害。

3、本聲明未涉及的問題參見國家有關法律法規(guī),當本聲明與國家法律法規(guī)沖突時,以國家法律法規(guī)為準。

4、如果侵害了您的合法權益,請您及時與我們聯(lián)系,我們會在第一時間刪除相關內容!

聯(lián)系方式:023-65309616
電子郵件:543874515@qq.com

ENABLE YOUR BRAND
TO BURST INTO EXCELLENCE
中高端定制開發(fā)服務商
掃一掃,微信咨詢
130-7236-3699 543874515