javascript调用c:vbscript和javascript互相调用来源: 发布时间:星期四, 2009年2月12日 浏览:60次 评论:0
ASP具备管理区别语言脚本能力能够自动合适脚本引擎以解释脚本代码和执行内置ASP开发环境提供了两种脚本引擎即VBScript(缺省)和JScript不过开发者并没有被限制于只能使用这两种语言只要能够提供合适ActiveX脚本引擎就能使用任何脚本语言 脚本语言选择往往基于许多区别原因:它可能是开发者最为熟悉语言可能是对给定工程来说能够提供最多特色支持也有可能是最具效率区别环境和要求使得我们在选择脚本语言时注重区别原因同时也使得我们在某些时候面临选定脚本语言不能直接提供其它语言固有这问题或某个脚本已经写成但用却是另外种脚本语言 此时应该如何办?是否需要用当前所用脚本语言重写这些脚本?或者说是否有可能在种脚本语言中其它脚本语言内置?本文要介绍说明就是在ASP应用中如何让VBScript脚本和JScript脚本交互以最大限度地获得两种脚本语言特色支持 、VBScript和JScript内置 在VBScript和JScript中有大量内置功能是相同或类似然而在种脚本语言中内置并非总是在另外种脚本语言中也有对应例如VBScript提供了许多用于操作串和格式化数据这些在JScript中并不存在这些包括StrReverse、Filter以及FormatCurrency等在另方面JScript所提供用于管理、串编码等在VBScript中也没有定义如join、reverse、pow、位操作、escape和unescape等 那么如果在JScript中需要个VBscript该如何办呢? 2、异种脚本互相 如果需要在JScript脚本中个VBScript中内置则应该写个VBScript用户定义(在这里VBScript内置)然后在JScript脚本中象公用JScript样这个用户定义 例如如果要VBSCript内置是FormatCurrency则可以声明如下自定义: < SCRIPT LANGUAGE=\"VBSCRIPT\" RUNAT=\"SERVER\"> Function FormatValue(Value) FormatValue = FormatCurrency(Value) End Function < /SCRIPT> 接下来在JScript代码中就可以象普通JScript样FormatValue了用类似思路方法也可以实现VBScript代码JScript 应用同样规则我们可以在任何脚本内任何用户定义不过从JScript脚本内个不带参数VBScript过程(Sub)时应略加注意此时在JScript中应该象个不带参数JScript样它如用fooVBScript Sub foo过程 3、数据共享 在某些情形下混合运用VBScript和JScript是非常有用但在区别语言脚本的间共享数据也可能很有用实现这种共享思路方法很简单:不管使用是什么语言只要是在页面级声明变量就可以任意引用 对象使用思路方法也相似可以任意选用合适语言读取、修改属性或对象思路方法当然给定对象属性和思路方法是由创建该对象例子语言所定义正如上例VBScript过程当从JScript中个不带参数VBScript对象思路方法时其思路方法也遵从JScript规则反的亦然 4、管理 共享问题稍微复杂点虽然也象其它变量样可以在区别语言脚本的间共享但必须注意兼容方面问题 VBScript在JScript下可以用VBScript符号引用即用myArray(2)引用元素而不是JScript元素引用符号myArray[2]此外还可以使用个特殊JScript对象——VBArray对象将VBScript转换为JScript下面代码从VBScriptmyVBArray创建JScriptmyJSArray: var Temp = VBArray(myVBArray) var myJSArray myJSArray = Temp.toArray 上述代码首先创建个临时VBArray对象然后使用它toArray思路方法将自己转换为JScript此后就可以象普通JScript样使用myJSArray如myJSArray[1]但应当注意是toArray思路方法将把个多维VBArray转换为维JScript 从VBScript中引用JScript更为复杂虽然在VBScript中我们可以直接访问JScript相关思路方法和属性但没有直接访问JScript单个元素思路方法也就是说我们可以在VBScript脚本中读取JScript长度属性如下所示: x = myJSArray.length 但无法直接读取该单个元素下面VBScript代码是不正确: x = myJSArray(3) 解决该问题个可行思路方法是执行个转换过程如下面代码所示此处假定VBScript是缺省脚本语言: < % Dim Temp Dim myVBArray Temp = myJSArray.join(\", \") myVBArray = Split(Temp, \", \") %> 此处JScript join思路方法将myJSArray元素转换到个以逗号为分割符串VBScript Split将串转换为VBScript注意这里我们是在VBScript环境下JScriptjoin思路方法依照此例我们可以通过自定义VBScript来模拟JScriptVBArray对象toArray思路方法以实现JScript到VBScript转换 、小结 在同个ASP工程内灵活选用区别脚本语言具有许多优点这些脚本的间交互能力更为开发者集成区别语言所提供内置和其它功能带来了更多机会同时也使得实现既可用于VBScript也可用于JScript环境通用脚本库成为可能 0
相关文章读者评论发表评论 |