如何在网页上使用VBScript和JScript(8)
作者:winsky 来源:无忧脚本 时间:2008-05-05 19:53:00
从VBScript 往JScript中传送数组
有时候一个VBScript程序会传送一个数组作为它的一个参数,或者作为它的返回值。你可以从JScript中调用这个程序,不过必须把VBScript 数组转换成为一个可用的JScript 数组。你只要在JScript 函数中建立一个VBArray 对象并且用toArray把它转换成为一个JScript数组就可以了。
注意:JScript不支持多维数组,如果原来的VBScript数组是多维的,经过toArray的转换后它会成为一个一维的JScript数组。
在下面的例子中有一个VBScript 脚本,它建立了一个数组,还有一个JScript脚本,它将说明如何才能获得并使用这个数组:
<SCRIPT LANGUAGE="VBSCRIPT">
Function makeArrayVB()
' Creates a VBScript array
dim anArray(1,1)
anArray(0,0) = "0,0"
anArray(0,1) = "0,1"
anArray(1,0) = "1,0"
anArray(1,1) = "1,1"
makeArrayVB = anArray
End Function
<SCRIPT LANGUAGE="JavaScript">
// Accesses a VBScript array within a JScript script
function getVBArray(){
var arrayObj;
var jsArray;
arrayObj = makeArrayVB();
jsArray = VBArray(arrayObj).toArray();
alert("VBScript array length = " + jsArray.length);
// Displays the contents of the array
for(i=1;i<=jsArray.length;i++){
alert(jsArray[i-1]);
}
}
</SCRIPT>
不过,在目前的VBScript(4.0)中,反过来是无法做到的。也就是说你不能把一个JScript 数组转换成为VBScript数组。如果你遇到的是一个JScript程序,要转换数组,你可以选择一下几种做法:
l 用JScript编写调用程序
l 用VBScript 重新编写JScript程序
l 如果可能,把JScript 数组转换成一种不同的结构,如转换成一个限制的字符串等,这样VBScript 就能够使用了。例如,你可以用toString 函数把一个数组转换成一个用逗号分隔的,无限制的字符串。这样,在VBScript中你就能够用Split函数把它分成不同的单元。很明显这种方法在很多时候并不管用,不过有时又的确有效。
更新脚本语言
VBScript和 JScript都不是一成不变的语言。两种语言的引擎都定时进行更新,增加一些新的特性,解决已经发现的问题。因为两种语言实际上都是作为ActiveX组件来应用的,所以每当你更新任何控制器时,你就可以同时更新它们。当你安装了新的语言引擎之后,任何需要调用引擎的应用程序会在它们运行某些脚本时调用这个新引擎——这些引擎包括Internet Explorer 或Visual InterDev等。
如果要了解语言引擎的情况以及如何更新的方法,还有脚本的一般知识,请访问Microsoft Scripting Web站点,网址是:http://msdn.microsoft.com/scripting/。同时,祝你编写脚本时一切顺利!