CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Web 开发 >  ASP

有没有介绍vbscript,javascript函数的连接?

楼主odie()2003-02-02 18:56:45 在 Web 开发 / ASP 提问

有没有介绍vbscript,javascript函数的连接? 问题点数:30、回复次数:2Top

1 楼yanfeng(烟峰)回复于 2003-02-02 19:06:11 得分 10

vbscript和javascript互相调用方法  
  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函数该怎么办呢?  
    二、异种脚本的互相调用    
    如果需要在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函数一样调用它,如用foo()调用VBScript   Sub   foo过程。    
    三、数据共享    
    在某些情形下混合运用VBScript和JScript函数是非常有用的,但在不同语言脚本之间共享数据也可能很有用。实现这种共享的方法很简单:不管使用的是什么语言,只要是在页面级声明的变量就可以任意引用。  
    对象的使用方法也相似,可以任意选用合适的语言读取、修改属性或调用对象的方法。当然给定对象的属性和方法是由创建该对象实例的语言所定义的。正如上例VBScript的过程调用,当从JScript中调用一个不带参数的VBScript对象的方法时,其调用方法也遵从JScript的调用规则,反之亦然。    
    四、数组管理    
    数组共享问题稍微复杂一点。虽然数组也象其它变量一样可以在不同语言脚本之间共享,但必须注意兼容方面的问题。    
    VBScript数组在JScript下可以用VBScript的符号引用,即用myArray(2)引用数组元素而不是JScript的数组元素引用符号myArray[2]。此外,还可以使用一个特殊的JScript对象——VBArray对象将VBScript数组转换为JScript数组。下面的代码从VBScript数组myVBArray创建JScript数组myJSArray:    
   var   Temp   =   new   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环境下调用JScript的join方法。依照此例,我们可以通过自定义VBScript函数来模拟JScript的VBArray对象的toArray()方法以实现JScript数组到VBScript数组的转换。  
    五、小结    
    在同一个ASP工程内灵活选用不同脚本语言具有许多优点,这些脚本之间的交互能力更为开发者集成不同语言所提供的内置函数和其它功能带来了更多的机会,同时也使得实现既可用于VBScript也可用于JScript环境的通用脚本库成为可能。    
  Top

2 楼flashasp(flashasp)回复于 2003-02-02 19:25:56 得分 20

javascript-codecenter  
  --------------------------------  
  http://javascript.internet.com/  
  http://WWW.javascriptS.com/  
  http://www.microsoft.com/technet/treeview/default.asp?url=/technet/scriptcenter/default.asp  
  ----------------------------------------  
  JAVASCRIPT教程:  
  http://www.k12.com.cn/webpage/javascript/Tutorial/Top

相关问题

  • 能不能在javascript函数中调用vbscript函数亚
  • vbscript 调用javascript 函数出错?
  • JavaScript里怎么调用VBScript的函数?
  • 请问vbscript里的isobject()函数,javascript里对应什么函数啊?
  • 谁能帮我把这个vbscript写的函数 写成javascript的函数,谢谢。
  • VBSCRIPT中的chr()/asc()函数在JAVASCRIPT中有吗?
  • 如何在JavaScript或VBScript中调用ASP函数
  • javascript 如何实现 vbscript的window_onload()函数?
  • javascript/vbscript函数里能包含asp语句吗?
  • 如何在vbscript或javascript中调用dll中的函数。

关键词

  • 函数
  • jscript
  • vbscript
  • 脚本
  • 脚本语言
  • 语言
  • 代码
  • 开发者
  • 转换
  • 属性

得分解答快速导航

  • 帖主:odie
  • yanfeng
  • flashasp

相关链接

  • Web开发类图书

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo