sjj(t)没有return?
直接在sjj(t)中return数组试试

解决方案 »

  1.   

    vbscript函数返回值不用return.
    javascript函数不能直接引用vbscript数组,我不知道怎么转换,但应该能实现的,
    请各位高手不吝赐教,谢谢!
      

  2.   

    p=new VBArray(sjj(n)).toArray()
    但是如果vb数组是多维数组,那就得到你可能不希望的数组
      

  3.   

    一维数组:
    <script language="vbscript">
    function sjj(t)
    x=cint(t)
    ReDim n(x-1)
    For i = 0 To x-1 
     n(i) = i
    Next 
    sjj=n
    end function
    </script><SCRIPT LANGUAGE="JavaScript">
    function sp(h)
    {
    var n=h;
    var p1=new VBArray(sjj(n));
    var p=p1.toArray(); 
    return p;
    }
    var s=sp(2);
    for (var j=0;j<s.length;j++){
     alert (s[j]);
    }
    </SCRIPT>
    多维数组:
    <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>
      

  4.   

    楼上的回复已经说明了问题的解决方案,这里给出另外一种解决方案:在VBScript和JScript中对全局变量都是认同的。也就是说你可以用VB声明一个全局变量,然后在JScript中调用,我们的解决思路就是这样:1、声明全局变量,将数组中的元素转化为字符串后赋值给这个全局变量
    2、在JScript中对这个字符串进行分割后得到数组。具体的实现代码我没有,但是我尝试过用这个的方法在VBScript和JScript中通信。Good Luck!