作者:手机用户2502932551 | 来源:互联网 | 2023-05-25 17:25
我有一个使用Javascript构建的对象数组,我需要使用Vbscript读取它(如下例所示).我找不到一种方法来循环我的Vbscript代码中的数组作为myArray
对象.
这个例子简化了我的问题.我无法更改页面的默认语言.该myArray
对象必须使用Javascript来构建.必须使用内联Vbscript输出数组.
<%@ Language="Vbscript" %>
<%
Response.Write(myArray) ' [object Object],[object Object],[object Object]
'Response.Write(myArray(0)) ' ERROR
'Response.Write(myArray[0]) ' ERROR
Response.Write(myArray.[0]) ' [object Object]
Response.Write(myArray.[0].name) ' object 1
Response.Write(VarType(myArray)) ' 8
Response.Write(myArray.length) ' 3
Response.Write(VarType(myArray.[0])) ' 8
Response.Write(VarType(myArray.[0].name)) ' 8
Response.Write(TypeName(myArray)) ' JScriptTypeInfo
Response.Write(TypeName(myArray.[0])) ' JScriptTypeInfo
' ERROR
' Type mismatch: 'UBound'
'Response.Write(UBound(myArray))
' ERROR
' Object doesn't support this property or method: 'myArray.i'
'Dim i
'For i = 0 To myArray.length - 1
' Response.Write(myArray.[i])
'Next
%>
Erik Oosterw..
7
派对有点晚,但您可以为标准的Javascript数组添加自定义方法.此方法也将在Vbscript中提供.所以将此代码添加到您的脚本中:
// add an Item() method to the standard array object so we can iterate arrays in Vbscript.
Array.prototype.Item = function(idx) {
return this[idx];
};
你可以使用:
myArray.Item(0)
在Vbscript中获取数组中的一个项目.
HTH
1> Erik Oosterw..:
派对有点晚,但您可以为标准的Javascript数组添加自定义方法.此方法也将在Vbscript中提供.所以将此代码添加到您的脚本中:
// add an Item() method to the standard array object so we can iterate arrays in Vbscript.
Array.prototype.Item = function(idx) {
return this[idx];
};
你可以使用:
myArray.Item(0)
在Vbscript中获取数组中的一个项目.
HTH
2> 小智..:
似乎JScript数组方法仍然可以通过Vbscript使用:
<%
Do While myArray.length > 0
response.write myArray.shift().name
response.write "
"
Loop
%>