office-js - 最简单的 Outlook 加载项无法在 Internet Explorer 中加载

标签 office-js

我们正在使用 JavaScript API 开发 Outlook 加载项。我们的加载项在 native Outlook 2016 中以及浏览到 outlook.office365.com 时运行良好。使用 Chrome 或其他网络浏览器。
使用 Internet Explorer 浏览 Outlook 网站时尝试启动加载项无法加载(我们在顶部收到“加载项错误”黄色通知)。
并非所有计算机上都会发生这种情况。目前,它一直在一台计算机上发生,上周它在另一台计算机上发生,但此后不再发生。只是为了说明 - 在大多数使用 IE 的计算机上,该加载项运行得很好。

我尝试精简我们的加载项,试图找出哪一段代码给我们带来了困难。我最终得到了最简单的加载项,但它仍然无法在该计算机的 IE 上启动。您可以看到这个简单的插件 here 。 此加载项链接到 office.js 并在初始化回调中的 div 中添加简单文本。除了那台计算机之外,它在其他地方都可以正常工作。

我的计算机运行的是 IE 版本 11.483.15063.0,更新版本 11.0.44(如果有任何区别)。

还有其他人遇到过这个问题吗?可能是什么原因造成的?

最佳答案

您加载 Office 的时间太晚,导致超时。由于这是一个计时问题,您将在不同的机器和浏览器上看到不同的结果(也取决于任何给定时间的网络延迟)。

这里的问题是,在 DOM 加载之后之前,您不会触发 Office.initialize。您需要在触发其他任何操作之前进行初始化:

<script>
    // Initialize Office
    Office.initialize = function () {

        // Wait for DOM to get fully loaded
        window.onload = function () {

            // Execute commands against DOM
            var div = document.getElementById('after');
            div.innerText = 'after init';

        }

    };
</script>

我有一篇关于这个主题的博客文章,您可能会觉得有帮助:Super Simple Outlook Add-in 。它仅使用 GitHub 上托管的静态 HTML 页面来逐步构建加载项。

关于office-js - 最简单的 Outlook 加载项无法在 Internet Explorer 中加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45531449/

相关文章:

javascript - Office插件开发: Insert table in Word 2016

azure - 使用 React 和 Yeoman Office-Generator 在 Outlook 插件上实现许可证

javascript - 在office.js中设置excel的条件格式

office-js - 使用 Javascript 插件操作 PowerPoint?

javascript - 使用 Office.js 合并 Excel 单元格

javascript - 使用异步执行上下文为 Office.js Javascript Word 加载项添加子例程

javascript - Office.js 插件 : Insert image/picture in Excel (Office 365)

excel - 如何使用 Office JS API 对 Excel 中的行或列进行分组

javascript - 如何避免office-js中过多的context.loads()

office-js - 在 insertText 之后使用 insertInlinePictureFromBase64 时需要重新启动 Word Online