文件夹主页中的用户控件未初始化

时间:2008-11-10 15:19:41

标签: javascript html outlook outlook-addin outlook-2003

我使用Visual Studio 2008编写Outlook 2003加载项。

加载项在文件夹的主页中使用嵌入式用户控件,就像它一样 推荐的。这是文件夹主页的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 个答案:

答案 0 :(得分:1)

我没有使用Outlook 2003或其他任何版本的经验,但我知道html和JavaScript,所以我建议不要立即触发该方法导致某些“浏览器/客户端”内部使用的值或事物需要它继续在方法内部尚不可用。你最好在调用方法时添加一个延迟,这可能会解决你的问题,因为它解决了我过去的许多问题。

示例:

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

注意:可能是onload或onbodyload。