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>
下面的例子由三部分组成。第一部分是创建 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>
解决方案 »
- 使用alert 出现SyntaxError: unterminated string literal的错误
- extjs中关于editorGridPanel的afteredit事件
- JAVASCRIPT怎么去调试?
- 高手帮忙看下,小弟想学这个!
- 模态对话框按屏幕比例弹出
- 100分:问个关于table里行的DISPLAY的问题
- =================================checkbox的问题=======================================
- 页面分左右两个框架,如何点击左边连接时在右边框架中显示一个excel文件??
- 如何实现多级菜单?
- 如何格式化一个字符串?就像c语言的printf函数一样?
- 如何用javascript选中input中的text?就像copy文字之前要选择文字一样?
- [javascript]:怎么在文本框中只能输入“***.**”的格式的数字。(数字输入到小数点后两位就不能往下输入了)
一个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错误。
<%
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数组吗?
for i=0 to 10
vbArray(i)=i
next
%>因为这里是在服务器端定义的数组调用的时候要这样<%=vbArray(i)%>...
我想用<%代码..... %>来起代:
<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>请问各位高手该怎么写才行吗?
请教高手!
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>参考~~~