Использование перечислителя в JavaScript - PullRequest
0 голосов
/ 18 февраля 2011

У меня есть следующий код 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 является ссылкой на объект элемента управления ActiveX, встроенный в DOM через элемент HTML.

Это JavaScript, который у меня пока есть:

function GxUIProxyVB::OnLogon()
{
    var EntityProxy; 
    // For Each EntityProxy In GxUIProxyVB.ListEntityProxy 
    //     alert(EntityProxy.Name);
    // Next 
}

Я прокомментировал часть, с которой я борюсь: перечисление значения GxUIProxyVB.ListEntityProxy .

На этом снимке экрана из списка наблюдения IE8 показаны члены объекта ListEntityProxy Screen capture of IE 8's watch list

В качестве обходного пути я понимаю, что мог бы просто оставить код в VBScript, поскольку пользователи, вероятно, будут использовать только Internet Explorer для доступа к этому контенту, но я бы предпочел иметь его в JavaScript для обеспечения устойчивости кода. (Я не хочу, чтобы будущие веб-разработчики, которые поддерживают этот код, должны были быть опытными в VBScript.)

1 Ответ

3 голосов
/ 18 февраля 2011

Вам нужно будет использовать Перечислитель объект:

function gxUIProxyVB_OnLogon() {
    var entityProxy; 
    for (var enr = new Enumerator(GxUIProxyVB.ListEntityProxy); !enr.atEnd(); enr.moveNext()) {
        entityProxy = enr.item();
        alert(entityProxy.Name);
    }
}
...