Office js &引用;“对象未定义”一词;登录重定向后的Office 2016插件

Office js &引用;“对象未定义”一词;登录重定向后的Office 2016插件,office-js,word-addins,Office Js,Word Addins,我正在尝试创建一个word加载项,该加载项在最初加载后首先必须重定向到登录页面,登录后重定向回加载项。外接程序托管在其自己的web服务器上。然而,在重定向之后,我得到一个错误“Word未定义”。外接程序正在word内部运行,我调用了Office.initialize和word.run。如果我运行外接程序,使其指向localhost,而不是外接程序的web服务器,则它运行正常,但当它从web服务器运行时,我会收到错误 以下是获取错误的页面的代码: (function () { "use stric

我正在尝试创建一个word加载项,该加载项在最初加载后首先必须重定向到登录页面,登录后重定向回加载项。外接程序托管在其自己的web服务器上。然而,在重定向之后,我得到一个错误“Word未定义”。外接程序正在word内部运行,我调用了Office.initialize和word.run。如果我运行外接程序,使其指向localhost,而不是外接程序的web服务器,则它运行正常,但当它从web服务器运行时,我会收到错误

以下是获取错误的页面的代码:

(function () {
"use strict";

Office.initialize = function (reason) {
    $(document).ready(function () {

        try {
            doSomethingInWord();
        } catch (e) {
            console.log(e);
        }
    }
}
})();
我的“doSomethingWord”函数如下所示:

function doSomethingInWord() {
    Word.run(function (context) {
        var body = context.document.body;

        return context.sync()
            .then(function () {
                    body.clear();
                    return context.sync().then(function () {
                        console.log('Did Something in word');
                    })
        }).catch(errorHandler);
    }
}

我认为您看到的问题是,通过重定向到auth对话框并返回,您不知何故没有重新触发Office.js

我很惊讶你说它在Word中没有Visual Studio的情况下对你有用——我不知道它们之间有什么关联。但是在任何一种情况下,我认为您都会在这个流程中遇到其他问题,特别是在Excel Online中,在Excel Online中,外接程序在
iframe
中运行(而OAuth对话框往往不允许在
iframes
中运行)


我认为最好是“正常”加载加载项,并使用
Office.context.ui.displayDialogAsync
API在单独的对话框中显示OAuth登录。在此期间,让外接程序显示“等待登录对话框输入”。然后,在OAuth登录完成后,将对话框消息返回给父级,传递任何必需的信息(令牌或诸如此类)。

运行Office.context.requirements.isSetSupported('WordApi',1.1')返回true。好的,只有当我从visual studio运行加载项时,此错误才会发生。在word中运行它似乎没有任何问题。您能详细介绍一下这个登录服务吗?它是否重定向到另一个页面,然后返回到此页面?它如何知道返回到这个(查询参数vs.浏览器返回)?服务是否在同一个域上运行?…当然,它会从加载项页面重定向到使用OAuth登录的联邦机构,然后使用一些查询参数重定向回加载项页面,我将这些参数传递给加载项服务器,以便访问受限制的内容。登录页面位于另一个域上。显示对话框的函数现在似乎称为“displayDialogAsync”-我是从内存中编写的。。。是的,我指的是displayDialogAsync。感谢您的编辑。有没有办法将模型传递到对话框?@KhawajaAsim,我建议您将其作为单独的问题进行提问,并提供更多信息detail@MichaelZlatkovsky好了