代码之家  ›  专栏  ›  技术社区  ›  Mawg says reinstate Monica

Office web加载项:Office.initialize()函数

  •  0
  • Mawg says reinstate Monica  · 技术社区  · 7 年前

    我很难理解,也找不到一个与我想要达到的目标完全相符的例子。它将具有MS Outlook功能区栏图标,单击该图标时将显示一个对话框。我玩了一个演示,扔掉了多余的功能,得到了一个Hello World——但它是JQuery,我想使用AngularJs,重用现有的大部分应用程序。

        <DesktopFormFactor>
          <FunctionFile resid="functionFile" />
    

    这似乎适用于当用户单击功能区栏上的图标时调用的函数。如果我只是使用一个 <script src=> 标签是否包含这样的函数文件?

    *.js 文件有如下内容

    // The Office initialize function must be run each time a new page is loaded
    Office.initialize = function (reason) {
    

    抱歉,如果这看起来很基本的东西,但所有的演示&医生似乎很接近我想要的,但不完全如此。节日快乐!

    1 回复  |  直到 7 年前
        1
  •  4
  •   SureshGowtham S    7 年前

    函数文件的使用

    外接程序可以决定在任务窗格中显示某些UI,也可以在后台执行javascript函数。对于 UI-less add-ins ,则必须指定一个函数文件。

    就你而言, FunctionFile

    使用Office.initialize

    Office加载项包括Office.js库,该库希望您的启动代码在库完全加载之前不会调用任何API。代码有两种方法可以确保加载库。

    1. 使用 Office.initialize :当Office.js库完全加载并准备好进行用户交互时,将触发初始化事件。您可以为其分配一个处理程序。
    2. 使用 Office.onReady :Office.onReady()是一个异步方法,它在检查Office.js库是否已完全加载时返回承诺对象。

    示例:

    Office.initialize = function () {
        // Office is ready
    };
    

    Office.onReady(function(info) {
        if (info.host === Office.HostType.Outlook) {
            // Based on host, decide what to display.
        }
        if (info.platform === Office.PlatformType.PC) {
            // Make minor UI changes, if required.
        }
    });
    

    推荐文章