Пользовательский элемент управления на домашней странице папки не инициализируется - PullRequest
2 голосов
/ 10 ноября 2008

Я программирую надстройку Outlook 2003 с помощью Visual Studio 2008.

Надстройка использует встроенный пользовательский элемент управления на домашней странице папки, как было рекомендуемые. Вот HTML-код для домашней страницы папки:

<html><head><style type="text/css">body{overflow: hidden}</style></head>
    <body rightmargin = '0' leftmargin ='0' topmargin ='0' bottommargin = '0' onload='OnBodyLoad()'>
        <script>
            function OnBodyLoad()
            {
                var outlook = window.external.OutlookApplication;
                FolderView.Initialize(outlook);
            }
        </script>
        <object classid='clsid:C718A848-6C31-4897-8DA8-0EDE3A4C6F14'
            id='FolderView' VIEWASTEXT width='100%' height='100%' />
    </body>
</html>

HTML-код вставляется в свойство HTMLDocument активного проводника во время Событие FolderSwitch.

В событии элемента управления OnLoad используется ссылка на экземпляр приложения (который был передан в качестве параметра в свой метод Initialize), но иногда элемент управления не инициализируется до возникновения события OnLoad. Это просто создано, но метод Initialize никогда не вызывается.

Есть ли у кого-нибудь подобный опыт? Это обычное поведение?

1 Ответ

1 голос
/ 07 августа 2012

У меня нет опыта работы с Outlook 2003 или любой другой его версией, НО я знаю о html и JavaScript, поэтому я бы рекомендовал не запускать метод мгновенно, вызывая в некоторых «браузерах / клиентах» значения, используемые внутри или вещи Нужно ли продолжать внутри метода пока нет. Вам лучше добавить задержку при вызове метода и, возможно, это решит вашу проблему, потому что это решило многие из моих проблем в прошлом.

Пример:

document.addEventListener('onload', function (e) { yourFunction(params); }, false);

ПРИМЕЧАНИЕ: это может быть как нагрузка, так и нагрузка на тело.

...