成人午夜激情影院,小视频免费在线观看,国产精品夜夜嗨,欧美日韩精品一区二区在线播放

當(dāng)前位置:首頁(yè)>>軟件教程>>新聞內(nèi)容  
VBScript和JScript互相調(diào)用方法
作者:未知 發(fā)布時(shí)間:2003-11-6 16:14:02 | 【字體:
   ASP具備管理不同語(yǔ)言腳本程序的能力,能夠自動(dòng)調(diào)用合適的腳本引擎以解釋腳本代碼和執(zhí)行內(nèi)置函數(shù)。ASP開(kāi)發(fā)環(huán)境提供了兩種腳本引擎,即VBScript(缺省)和JScript。不過(guò),開(kāi)發(fā)者并沒(méi)有被限制于只能使用這兩種語(yǔ)言,只要能夠提供合適的ActiveX腳本引擎就能使用任何腳本語(yǔ)言。

  腳本語(yǔ)言的選擇往往基于許多不同原因:它可能是開(kāi)發(fā)者最為熟悉的語(yǔ)言,可能是對(duì)給定工程來(lái)說(shuō)能夠提供最多特色支持的,也有可能是最具效率的。不同的環(huán)境和要求使得我們?cè)谶x擇腳本語(yǔ)言時(shí)注重不同的因素,同時(shí)也使得我們?cè)谀承⿻r(shí)候面臨選定的腳本語(yǔ)言不能直接提供其它語(yǔ)言固有的函數(shù)這一問(wèn)題,或某個(gè)腳本已經(jīng)寫(xiě)成但用的卻是另外一種腳本語(yǔ)言。

  此時(shí)應(yīng)該怎么辦?是否需要用當(dāng)前所用的腳本語(yǔ)言重寫(xiě)這些腳本?或者說(shuō),是否有可能在一種腳本語(yǔ)言中調(diào)用其它腳本語(yǔ)言的內(nèi)置函數(shù)?本文要說(shuō)明的就是在ASP應(yīng)用中如何讓VBScript腳本和JScript腳本交互以最大限度地獲得兩種腳本語(yǔ)言的特色支持。

  一、VBScript和JScript的內(nèi)置函數(shù)

  在VBScript和JScript中,有大量的內(nèi)置函數(shù)功能是相同或類似的。然而,在一種腳本語(yǔ)言中內(nèi)置的函數(shù)并非總是在另外一種腳本語(yǔ)言中也有對(duì)應(yīng)的函數(shù)。例如,VBScript提供了許多用于操作字符串和格式化數(shù)據(jù)的函數(shù),這些函數(shù)在JScript中并不存在。這些函數(shù)包括StrReverse()、Filter()以及FormatCurrency()等。在另一方面,JScript所提供的用于管理數(shù)組、字符串編碼等的函數(shù)在VBScript中也沒(méi)有定義,如join()、reverse()、pow()、位操作、escape()和unescape()等。

  那么,如果在JScript程序中需要一個(gè)VBscript函數(shù)該怎么辦呢?

  二、異種腳本的互相調(diào)用

  如果需要在JScript腳本中調(diào)用一個(gè)VBScript中內(nèi)置的函數(shù),則應(yīng)該寫(xiě)一個(gè)VBScript用戶定義函數(shù)(在這里調(diào)用VBScript內(nèi)置函數(shù)),然后在JScript腳本中象調(diào)用公用JScript函數(shù)一樣調(diào)用這個(gè)用戶定義函數(shù)。

  例如,如果要調(diào)用的VBSCript內(nèi)置函數(shù)是FormatCurrency(),則可以聲明如下自定義函數(shù):

  <SCRIPT LANGUAGE="VBSCRIPT" RUNAT="SERVER">
  Function FormatValue(Value)
    FormatValue = FormatCurrency(Value)
  End Function
  </SCRIPT>

  接下來(lái)在JScript代碼中就可以象普通JScript函數(shù)一樣調(diào)用FormatValue()了。用類似的方法也可以實(shí)現(xiàn)VBScript代碼調(diào)用JScript函數(shù)。

  應(yīng)用同樣的規(guī)則,我們可以在任何腳本內(nèi)調(diào)用任何用戶定義函數(shù)。不過(guò),從JScript腳本內(nèi)調(diào)用一個(gè)不帶參數(shù)的VBScript過(guò)程(Sub)時(shí)應(yīng)略加注意,此時(shí)在JScript中應(yīng)該象調(diào)用一個(gè)不帶參數(shù)的JScript函數(shù)一樣調(diào)用它,如用foo()調(diào)用VBScript Sub foo過(guò)程。

  三、數(shù)據(jù)共享

  在某些情形下混合運(yùn)用VBScript和JScript函數(shù)是非常有用的,但在不同語(yǔ)言腳本之間共享數(shù)據(jù)也可能很有用。實(shí)現(xiàn)這種共享的方法很簡(jiǎn)單:不管使用的是什么語(yǔ)言,只要是在頁(yè)面級(jí)聲明的變量就可以任意引用。

  對(duì)象的使用方法也相似,可以任意選用合適的語(yǔ)言讀取、修改屬性或調(diào)用對(duì)象的方法。當(dāng)然給定對(duì)象的屬性和方法是由創(chuàng)建該對(duì)象實(shí)例的語(yǔ)言所定義的。正如上例VBScript的過(guò)程調(diào)用,當(dāng)從JScript中調(diào)用一個(gè)不帶參數(shù)的VBScript對(duì)象的方法時(shí),其調(diào)用方法也遵從JScript的調(diào)用規(guī)則,反之亦然。

  四、數(shù)組管理

  數(shù)組共享問(wèn)題稍微復(fù)雜一點(diǎn)。雖然數(shù)組也象其它變量一樣可以在不同語(yǔ)言腳本之間共享,但必須注意兼容方面的問(wèn)題。

  VBScript數(shù)組在JScript下可以用VBScript的符號(hào)引用,即用myArray(2)引用數(shù)組元素而不是JScript的數(shù)組元素引用符號(hào)myArray[2]。此外,還可以使用一個(gè)特殊的JScript對(duì)象——VBArray對(duì)象將VBScript數(shù)組轉(zhuǎn)換為JScript數(shù)組。下面的代碼從VBScript數(shù)組myVBArray創(chuàng)建JScript數(shù)組myJSArray:

 var Temp = new VBArray(myVBArray)
 var myJSArray
 myJSArray = Temp.toArray()

  上述代碼首先創(chuàng)建一個(gè)臨時(shí)的VBArray對(duì)象,然后使用它的toArray()方法將自己轉(zhuǎn)換為JScript數(shù)組。此后就可以象普通JScript數(shù)組一樣使用myJSArray,如myJSArray[1]。但應(yīng)當(dāng)注意的是,toArray()方法將把一個(gè)多維的VBArray轉(zhuǎn)換為一維的JScript數(shù)組。

  從VBScript中引用JScript數(shù)組更為復(fù)雜。雖然在VBScript中我們可以直接訪問(wèn)JScript數(shù)組相關(guān)的方法和屬性,但沒(méi)有直接訪問(wèn)JScript數(shù)組的單個(gè)元素的方法。也就是說(shuō),我們可以在VBScript腳本中讀取JScript數(shù)組的長(zhǎng)度屬性,如下所示:

  x = myJSArray.length

  但無(wú)法直接讀取該數(shù)組的單個(gè)元素,下面的VBScript代碼是不正確的:

  x = myJSArray(3)

  解決該問(wèn)題的一個(gè)可行的方法是執(zhí)行一個(gè)轉(zhuǎn)換過(guò)程,如下面的代碼所示,此處假定VBScript是缺省的腳本語(yǔ)言:

<%
  Dim Temp
  Dim myVBArray
  Temp = myJSArray.join(", ")
  myVBArray = Split(Temp, ", ")
%>

  此處的JScript join()方法將數(shù)組myJSArray元素轉(zhuǎn)換到一個(gè)以逗號(hào)為分割符的字符串,VBScript Split()函數(shù)將字符串轉(zhuǎn)換為VBScript數(shù)組。注意這里我們是在VBScript環(huán)境下調(diào)用JScript的join方法。依照此例,我們可以通過(guò)自定義VBScript函數(shù)來(lái)模擬JScript的VBArray對(duì)象的toArray()方法以實(shí)現(xiàn)JScript數(shù)組到VBScript數(shù)組的轉(zhuǎn)換。

  五、小結(jié)

  在同一個(gè)ASP工程內(nèi)靈活選用不同腳本語(yǔ)言具有許多優(yōu)點(diǎn),這些腳本之間的交互能力更為開(kāi)發(fā)者集成不同語(yǔ)言所提供的內(nèi)置函數(shù)和其它功能帶來(lái)了更多的機(jī)會(huì),同時(shí)也使得實(shí)現(xiàn)既可用于VBScript也可用于JScript環(huán)境的通用腳本庫(kù)成為可能。
文章來(lái)源:weste.net
 放生
 愚愛(ài)
 夠愛(ài)
 觸電
 白狐
 葬愛(ài)
 光榮
 畫(huà)心
 火花
 稻香
 小酒窩
 下雨天
 右手邊
 安靜了
 魔杰座
 你不像她
 邊做邊愛(ài)
 擦肩而過(guò)
 我的答鈴
 懷念過(guò)去
 等一分鐘
 放手去愛(ài)
 冰河時(shí)代
 你的承諾
 自由飛翔
 原諒我一次
 吻的太逼真
 左眼皮跳跳
 做你的愛(ài)人
 一定要愛(ài)你
 飛向別人的床
 愛(ài)上別人的人
 感動(dòng)天感動(dòng)地
 心在跳情在燒
 玫瑰花的葬禮
 有沒(méi)有人告訴你
 即使知道要見(jiàn)面
 愛(ài)上你是一個(gè)錯(cuò)
 最后一次的溫柔
 愛(ài)上你是我的錯(cuò)
 怎么會(huì)狠心傷害我
 不是因?yàn)榧拍畔?/a>
 親愛(ài)的那不是愛(ài)情
 難道愛(ài)一個(gè)人有錯(cuò)
 寂寞的時(shí)候說(shuō)愛(ài)我
主站蜘蛛池模板: 富裕县| 麻城市| 合肥市| 留坝县| 奉节县| 多伦县| 罗山县| 广平县| 康乐县| 沾化县| 南部县| 宜都市| 舟山市| 修水县| 咸阳市| 呼伦贝尔市| 贵阳市| 珲春市| 怀集县| 辽宁省| 蒙阴县| 应用必备| 奉新县| 金华市| 潮安县| 扬中市| 蒙山县| 黄冈市| 葫芦岛市| 于都县| 东乡| 循化| 大理市| 普安县| 南宫市| 泌阳县| 梁河县| 逊克县| 延寿县| 宣汉县| 永寿县|