JS中是没有variant类型,但是ActiveX中的函数接口是要求VARIANT类型的参数,是说怎么办?我试过用VB SCRIPT可以将数组参数正常传入,但是在JAVA SCRIPT中我将数组当参数传入的时候总是报错,说类型不匹配,由于项目时间紧,请各位高手帮帮忙!

解决方案 »

  1.   

    先用JS传入VBS,再用VBS传
    Try:
    <script language="vbscript">
    Sub test(a)
    Dim A1(2)
    'A1 = Array()
    Set A1 = a
    End Sub
    </script>
    <script language=javascript>
    var strArray = new Array("A","B")
    test(strArray)
    </script>
      

  2.   

    net_lover(孟子E章)
    你没懂我的意思,我的意思是说怎么在javascript中将java script形式的数组转化为vb script形式的数组?!但是只能在java script中实现,不用vbscript。
      

  3.   

    net_lover(孟子E章)
    你没懂我的意思,我的意思是说怎么在javascript中将java script形式的数组转化为vb script形式的数组?!但是只能在java script中实现,不用vbscript。
      

  4.   

    VBArray 对象
    提供对 Visual Basic 安全数组的访问。varName = new VBArray(safeArray) 参数
    varName必选项。要赋值为 VBArray 的变量名。safeArray必选项。VBArray 值。说明
    VBArrays 是只读的,并且不能被直接创建。在传递给 VBArray 构造函数之前 safeArray 参数必须已获得 VBArray 值。这只能通过从已有的 ActiveX 或其它对象获得值才能做到。VBArrays 可以有多维。每一维的下标可以不一样。dimensions 方法取得数组的维数;lbound 和 ubound 方法取得每个维的下标范围。
    看到说明了么?
    从VBArray到js的Array很容易,只要toArray()
    但要从js的Array到VBArray....
      

  5.   

    不过,可以试试看new ObjectObject 对象
    提供所有 JScript 对象通用的功能。obj = new Object([value]) 参数
    obj必选项。要赋值为 Object 对象的变量名。value可选项。任意一种 JScript 基本数据类型。(Number、Boolean、或 String。)如果 value 为一个对象,返回不作改动的该对象。如果 value 为 null、undefined,或者没有给出,则产生没有内容的对象。说明
    Object 对象被包含在所有其它 JScript 对象中;在所有其它对象中它的方法和属性都是可用的。在用户定义的对象中可以重定义这些方法,并在适当的时候通过 JScript 调用。toString 方法是经常被重定义的 Object 方法的例子。在本语言参考中,每个 Object 方法的说明包括默认的和与对象相关固有 JScript 对象的实现信息。
      

  6.   

    toArray 方法
    返回一个由 VBArray 转换而来的标准 JScript 数组。safeArray.toArray( )必选项 safeArray 参数是一个 VBArray 对象。 说明
    该转换将多维的 VBArray 翻译成一个一维的 JScript 数组。每个后续维被添加到前一维的结尾。例如,一个三维的且每一维有三个元素的 VBArray 将被转换为如下所示的 JScript 数组:假定该 VBArray 包含:(1, 2, 3), (4, 5, 6), (7, 8, 9)。在转换后,JScript 数组将包含:1, 2, 3, 4, 5, 6, 7, 8, 9。 现在没有将 JScript 数组转换为 VBArray 的方法。示例
    下面的示例包括三个部分。第一部分是用来创建一个 Visual Basic 安全数组的 VBScript 代码。第二部分是 JScript 代码,将这个 VB 安全数组转换为一个 JScript 数组。这两部分都放在 HTML 页中的 <HEAD> 部分。第三部分是位于 <BODY> 部分的 JScript 代码,用来运行其他两个部分。 <HEAD>
    <SCRIPT LANGUAGE="VBScript">
    <!--
    Function CreateVBArray()
       Dim i, j, k
       Dim a(2, 2)
       k = 1
       For i = 0 To 2
          For j = 0 To 2
             a(j, i) = k
             document.writeln(k)
             k = k + 1
          Next
          document.writeln("<BR>")
       Next
       CreateVBArray = a
    End Function
    -->
    </SCRIPT><SCRIPT LANGUAGE="JScript">
    <!--
    function VBArrayTest(vbarray)
    {
       var a = new VBArray(vbarray);
       var b = a.toArray();
       var i;
       for (i = 0; i < 9; i++) 
       {
          document.writeln(b[i]);
       }
    }
    -->
    </SCRIPT>
    </HEAD><BODY>
    <SCRIPT LANGUAGE="JScript">
    <!--
       VBArrayTest(CreateVBArray());
    -->
    </SCRIPT>
    </BODY>注意:
    现在没有将 JScript 数组转换为 VBArray 的方法。
    现在没有将 JScript 数组转换为 VBArray 的方法。
    现在没有将 JScript 数组转换为 VBArray 的方法。