ASP页面的VBscript和Jscript的相互作用

ASP页面的VBscript和Jscript的相互作用
ASP具有管理不同的语言文字的能力,并能自动调用相应的脚本引擎解释执行的脚本代码和内置的功能。ASP发展环境提供了两种脚本引擎,即VBscript和Jscript(默认)。然而,开发商不仅限于这两种语言的使用,和可以使用任何脚本语言,只要适当的ActiveX脚本引擎是可用的。

脚本语言的选择往往是基于不同的原因:它可能是开发人员最熟悉的语言,它可能是最具特色的支持某个特定的项目,或者最有效的一个。环境的不同要求,使我们能够专注于脚本语言的选择,不同的因素,但也使我们在某些时候面对选择的脚本语言无法直接提供其他语言在这个问题上的固有功能,或一个剧本已经写却用另一种脚本语言。

这个时候我该怎么办您需要重写当前脚本语言中的脚本吗或者可以用脚本语言调用其他脚本语言的内置函数吗本文主要讲解的是如何让VBscript和Jscript脚本脚本互动在ASP应用最大化两种脚本语言的功能支持。

一个内置的功能,VBscript和Jscript

在VBscript和Jscript,有大量的内置函数的功能是相同或相似的。然而,在脚本语言中内置的功能并不总是在另一个脚本语言都有相应的功能。例如,VBscript操作字符串和格式化数据提供了许多功能,其中不存在在Jscript。这些功能包括StrReverse()、过滤器(),和formatcurrency()。另一方面,提供的管理功能,Jscript数组,字符串编码等没有被定义在VBscript,如加入()、反(),(),位运算,战俘逃跑()和()unescape。

所以,如果你需要一个VBscript函数在Jscript程序吗

二、不同脚本的相互调用

如果你需要一个内置VBscript函数调用Jscript脚本,你应该写一个用户定义函数(调用VBscript VBscript函数这里),然后在Jscript脚本想叫公共Jscript函数调用用户定义的函数。

例如,如果VBscript内置函数调用formatcurrency(),你可以把下面的自定义功能:

U3000
功能formatvalue(价值)
formatvalue = formatcurrency(价值)
端功能
U3000

其次,在Jscript代码,你可以叫formatvalue()像普通的Jscript函数。同理,VBscript代码可以调用调用Jscript函数。

按照同样的规则,我们可以调用任何用户在任何脚本定义的功能。但是,我们应该注意调用VBscript过程没有参数(子)从Jscript脚本。在这个时候,我们应该像一个没有任何参数的函数调用Jscript Jscript,如foo调用VBscript foo()子过程。

三。数据共享

这是非常有用的,在某些情况下,使用VBscript和Jscript函数,但它可以分享不同语言文字之间的数据有用。实现这种共享的方式很简单:不管使用的是什么语言,变量是在页级别声明可以任意引用。

使用对象也是类似的,可以选择阅读、修改正确的语言,或调用的对象。当然,一个给定对象的属性和方法,创建对象实例的语言定义的。如上例VBscript的过程调用从Jscript方法调用的时候,不带任何参数VBscript对象,调用方法也遵从Jscript调用规则,反之亦然。

四、数组管理

数组共享的问题有点复杂,虽然数组也可以像其他变量一样在不同的语言脚本中共享,但是要注意兼容性问题。

VBscript数组可以借鉴VBscript,Jscript的象征,在它使用MyArray(2)指的不是Jscript数组元素的数组元素的引用符号MyArray { 2 }。此外,你也可以使用一个特殊的Jscript对象的VBArray对象,转换VBscript数组的Jscript数组。下面的代码创建一个从VBscript数组myvbarray Jscript数组myjsarray:

VaR温度=新的VBArray(myvbarray)
无功myjsarray
myjsarray = temp.toarray()

上面的代码首先创建一个临时的VBArray对象,然后使用toArray()转换成一个Jscript数组的方法。在那之后,你可以用myjsarray像普通Jscript数组,如myjsarray { 1 }。应当指出,然而,toArray()方法将一个多维的VBArray为一个一维的Jscript数组。

它是指从VBscript Jscript数组更复杂。虽然我们可以直接访问Jscript数组在VBscript中的方法和属性,没有直接访问Jscript数组的一个元素,我们可以看到在VBscript脚本Jscript数组的长度属性,如下所示:

x = myjsarray.length

但是阵列不能单元可直接读取,和下面的VBscript代码是不正确的:

myjsarray(x = 3)

解决这个问题的一个可行的方法是执行一个转换过程,如下面的代码所示,假设是默认的脚本语言VBscript。

微弱的温度
昏暗的myvbarray
温度= myjsarray.join(
myvbarray =分裂(温度,
%>

Jscript加入()方法将阵列myjsarray元素用逗号分隔的字符串,和VBscript Split()函数将字符串转换为VBscript数组。请注意,我们的方法在VBscript环境调用Jscript。根据这种情况,我们可以自定义VBscript函数来模拟Jscript的VBArray对象(toArray)转变为VBscript Jscript数组阵列的方法。

五、总结

在同一个ASP项目,灵活选择不同的脚本语言有很多优点,对这些脚本为开发者提供整合不同的语言等功能带来更多机会的交互能力的内置功能,也使得实现都可以使用VBscript和Jscript脚本库一般环境成为可能。

tag:相互作用页面电脑软件ASPJscript

相关内容