VBArrays 是只读的,并且不能被直接创建。在传递给 VBArray 构造函数之前 safeArray 参数必须已获得 VBArray 值。这只能通过从已有的 ActiveX 或其它对象获得值才能做到。VBArrays 可以有多维。每一维的下标可以不一样。dimensions 方法取得数组的维数;lbound 和 ubound 方法取得每个维的下标范围。示例
下面的例子由三部分组成。第一部分是创建 Visual Basic 安全数组的 VBScript 代码。第二部分是将 VB 安全数组转换为 JScript 数组的 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("vbCRLF")
   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>

解决方案 »

  1.   

    VBArray对象
    一个VBArray对象提供访问Visual Basic安全数组的接口。
    new VBArray(safeArray)
    其中的safeArray也是一个VBArray值。
    值得注意的是,VBArray对象是一个只读的对象,这里的safeArray值是从一个现有的ActiveX对象中取得的,而不能由常规的方法获得,而且,在创建这个VBArray对象时,这个safeArray值必须是事先定义的。
    与JavaScript中数组不同的是,VBArray数组可以是多维的,而且其中的每一维都可以是不同的。这样,VBArray能够使用的控制方式就比JavaScript中原有的数组要灵活一些。但是,这个对象只能在IE浏览器中实现。
    这个VBArray对象有如下的方法和属性:
    dimensions()方法
    返回一个VBArray对象中的维数。
    getItem(dim1,dim2...)方法
    返回指定下标处的数组元素值。
    lbound(dim)方法
    返回VBArray对象中指定维数的下标下限。如果省略参数,就认为dim=1;如果这个对象是空的,lbound()方法就返回undefined。如果给定的dim是负数或者超过这个对象的实际维数,lbound()方法就返回一个Subscript out of range错误。
    toArray()方法
    把一个VBArray对象表示的数组转换成普通的JavaScript数组。例如,一个(1,2,3),(4,5,6),(7,8,9)的VBArray数组类型,在使用toArray()方法转换成JavaScript的数组时,JavaScript数组的数据结构是(1,2,3,4,5,6,7,8,9),成为一个单维的排列。
    ubound(dim)方法
    返回VBArray对象数组下标上限值。如果省略参数,JavaScript就认为dim=1;如果这个对象是空的,ubound()方法就返回undefined。如果给定的dim参数是负数或者超过了这个对象的实际维数,ubound()方法就返回一个Subscript out of range错误。
      

  2.   

    <HEAD>
    <%
      for i=0 to 10
         vbArray(i)=i
      next
    %>
    <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(vbArray());
    -->
    </SCRIPT>
    </BODY>
    为什么上面用VB函数就可以,而我这样就不行呢?不是同为VB数组吗?
      

  3.   

    <%
      for i=0 to 10
         vbArray(i)=i
      next
    %>因为这里是在服务器端定义的数组调用的时候要这样<%=vbArray(i)%>...
      

  4.   

    请问该怎么写才能行:
    我想用<%代码..... %>来起代:
    <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("vbCRLF")
       Next
       CreateVBArray = a
    End Function
    -->
    </SCRIPT>请问各位高手该怎么写才行吗?
      

  5.   

    因为我想要用动态来添加数组,因为VBSCRIPT里我连接不上数据库,怎样才能连上呢?
    请教高手!
      

  6.   

    <%
      Dim a(3)
      Dim i
      for i = 0 To 3
        a(i)=i
      Next
    %>
    <script language="javascript">
    <!--
      var a=<%=a(0)%>;alert(a);
      var b=<%=a(1)%>;alert(b);
      var c=<%=a(2)%>;alert(c);
      var d=<%=a(3)%>;alert(d);
    //-->
    </script>参考~~~