请选择 进入手机版 | 继续访问电脑版
设为首页收藏本站

就爱编程论坛

 找回密码
 注册

人人连接登陆

无需注册,直接登录

用新浪微博连接

一步搞定

QQ登录

只需一步,快速开始

查看: 550211|回复: 7

怎么在javascript中引用vbscript数组 [复制链接]

Rank: 9Rank: 9Rank: 9

  • TA的每日心情

    2018-1-16 20:25:34
  • 签到天数: 382 天

    [LV.9]以坛为家II

    论坛先锋 学习至圣 荣誉成员 论坛元老 活跃之星 终极领袖

    发表于 2011-5-6 02:36:46 |显示全部楼层
    一、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环境的通用脚本库成为可能。
    [img=http://mail.qq.com/cgi-bin/qm_share?t=qm_mailme&email=fRUcHhYWGAQ9GxIFEBwUEVMeEhA]http://rescdn.qqmail.com/zh_CN/htmledition/images/function/qm_open/ico_mailme_02.png[/img]

    使用道具 举报

    Rank: 1

    升级 
     
    20%

    该用户从未签到

    发表于 2011-9-7 21:08:05 |显示全部楼层
    顶!!!!!!!!!!













    2我们专注最直接的营销,如果你想创业不要错过这个机会

    使用道具 举报

    Rank: 2

    升级 
     
    50%

    该用户从未签到

    发表于 2011-9-14 07:36:50 |显示全部楼层
    我喜欢,请大家鼓掌支持,谢谢













    使用道具 举报

    Rank: 1

    升级 
     
    32%

    该用户从未签到

    发表于 2011-9-17 21:56:17 |显示全部楼层
    呵呵,谢谢楼主了~~~~~~~~~~~












    淘宝网特卖:http://t.cn/arytfd     淘宝电器城:http://t.cn/ar8hfv

    使用道具 举报

    Rank: 2

    升级 
     
    70%

    该用户从未签到

    发表于 2011-10-6 04:13:52 |显示全部楼层

    使用道具 举报

    Rank: 3Rank: 3

    升级 
     
    46.33%

    该用户从未签到

    发表于 2011-10-7 23:54:50 |显示全部楼层

    使用道具 举报

    Rank: 3Rank: 3

    升级 
     
    52.33%

    该用户从未签到

    发表于 2011-10-20 20:58:49 |显示全部楼层

    使用道具 举报

    Rank: 1

    升级 
     
    78%

    该用户从未签到

    发表于 2011-11-12 17:46:09 |显示全部楼层

    Sg罗霸道眼见成功就在面前

    别,然而也禁受不起罗霸道这种凶残的攻打。每一刀下去都有几柄仙剑消逝,连砍多少十刀,这两百多把仙剑竟然消散得无影无综。
        李大老板当初看上去就象是一个被拔光刺的刺猬,衣着条内裤在场中上蹦下窜,为难无比。手上的流星剑由于受损,不堪重用,或者说李成柱舍不得动用它,因为是美女师叔祖送给本人的。
        罗霸道眼见成功就在面前,怎
        机遇?
        暴喝一声,一身灵气运在天魔化血神刀之上,对着眼前的刺猬当头劈下。
    c4再也不会呈现这样的补品了

    使用道具 举报

    您需要登录后才可以回帖 登录 | 注册 人人连接登陆

    晴云孤魂's Blog|就爱编程搜帖|手机版|Archiver|就爱编程论坛     

    GMT+8, 2018-2-18 05:36 , Processed in 0.072935 second(s), 39 queries .

    Powered by Discuz! X2

    © 2001-2011 Comsenz Inc.

    回顶部