专注于互联网--专注于架构

最新标签
网站地图
文章索引
Rss订阅

首页 »Asp教程 » javascript调用c:vbscript和javascript互相调用 »正文

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代码中就可以象普通JScriptFormatValue用类似思路方法也可以实现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

相关文章

读者评论

发表评论

  • 昵称:
  • 内容: