我有以下VBScript代码,我想在JavaScript中表达:
Sub GxUIProxyVB_OnLogon
Dim EntityProxy
For Each EntityProxy In GxUIProxyVB.ListEntityProxy
MsgBox EntityProxy.Name
Next
End Sub
要提供上下文,此代码是ActiveX控件的登录事件的登录后事件处理程序。 ActiveX控件托管在Internet Explorer 8中运行的网页中。网页用户通过ActiveX控件的登录机制成功登录,从而触发此代码的执行。
在代码中 GxUIProxyVB 是对通过HTML元素嵌入DOM中的ActiveX控件对象的引用。
这是我到目前为止的JavaScript:
function GxUIProxyVB::OnLogon()
{
var EntityProxy;
// For Each EntityProxy In GxUIProxyVB.ListEntityProxy
// alert(EntityProxy.Name);
// Next
}
我已经评论了我正在努力解决的问题:枚举 GxUIProxyVB.ListEntityProxy 的值。
从IE8的监视列表中截取的屏幕显示 ListEntityProxy 对象的成员
作为一种解决方法,我意识到我可以将代码保留在VBScript中,因为用户可能只会使用Internet Explorer来访问此内容,但我宁愿用JavaScript来代码维护。 (我不希望维护此代码的未来Web开发人员需要精通VBScript。)
答案 0 :(得分:3)
您必须使用Enumerator对象:
function gxUIProxyVB_OnLogon() {
var entityProxy;
for (var enr = new Enumerator(GxUIProxyVB.ListEntityProxy); !enr.atEnd(); enr.moveNext()) {
entityProxy = enr.item();
alert(entityProxy.Name);
}
}