加载 DOM 和运行时环境

在运行自己的自定义逻辑之前,外接程序必须确保加载 DOM 和 Office 外接程序 运行时 环境。

启动内容或任务窗格加载项

下图显示了在 Excel、PowerPoint、Project 或 Word 中启动内容或任务窗格加载项所涉及的事件流。

启动内容或任务窗格加载项时的事件流。

当内容或任务窗格加载项启动时,会发生以下事件。

  1. 用户打开已包含加载项的文档,或在文档中插入加载项。

  2. Office 客户端应用程序从 AppSource、SharePoint 上的应用程序目录或其源自的共享文件夹目录读取加载项的 XML 清单。

  3. Office 客户端应用程序在 Webview 控件中打开加载项的 HTML 页。

    后面的两个步骤第 4 步和第 5 步以异步方式并行发生。 因此,您的加载项代码必须在继续之前确保 DOM 和加载项运行时环境已加载完。

  4. Webview 控件加载 DOM 和 HTML 正文,并调用事件的事件处理程序 window.onload

  5. Office 客户端应用程序加载运行时环境,该环境从内容分发网络 (CDN) 服务器下载和缓存 Office JavaScript API 库文件,然后调用外接程序的事件处理程序作为 Office 对象的 initialize 事件(如果已分配给它)。 此时,它还会检查是否有任何回调 (或链接 then() 的方法) 传递到处理程序 (或链接) Office.onReady 。 有关 和 Office.onReady之间的区别Office.initialize的详细信息,请参阅初始化外接程序

  6. 当 DOM 和 HTML 正文加载完毕并且加载项完成初始化后,加载项的主函数就可以继续进行。

启动 Outlook 外接程序

下图显示了启动在台式机、平板电脑或智能手机上运行的 Outlook 外接程序所涉及的事件流。

启动 Outlook 外接程序时的事件流。

Outlook 加载项启动时会发生以下事件。

  1. 当 Outlook 启动时,Outlook 读取已为用户的电子邮件帐户安装的 Outlook 外接程序的 XML 清单。

  2. 用户选择 Outlook 中的一个项目。

  3. 如果所选项目满足某个 Outlook 外接程序的激活条件,则 Outlook 将激活该外接程序,并使其按钮在 UI 中可见。

  4. 如果用户单击按钮以启动 Outlook 加载项,Outlook 将在 Webview 控件中打开 HTML 页面。 下面两个步骤(步骤 5 和 6)并行发生。

  5. Webview 控件加载 DOM 和 HTML 正文,并调用事件的事件处理程序 onload

  6. Outlook 加载运行时环境,这将从内容分发网络 (CDN) 服务器中为 JavaScript 库文件下载并缓存 JavaScript API,然后为 Office 加载项对象的 initialize 事件调用事件处理程序(如果已为其分配处理程序)。 此时,它还会检查是否有任何回调 (或链接 then() 的方法) 传递到处理程序 (或链接) Office.onReady 。 有关 和 Office.onReady之间的区别Office.initialize的详细信息,请参阅初始化外接程序

  7. 当 DOM 和 HTML 正文加载完毕并且加载项完成初始化后,加载项的主函数就可以继续进行。

另请参阅