首页 文章

登录重定向后,Office 2016加载项中的“Word对象未定义”

提问于
浏览
2

我正在尝试添加一个词,首先必须在最初加载后重定向到登录页面,并在重定向回登录后再添加 . 添加内容托管在自己的Web服务器上 . 但是,重定向后,我收到“Word未定义”的错误 . 添加进入word内部,我调用了Office.initialize和Word.run . 如果我运行add in以便它指向localhost而不是添加的web服务器,它运行正常,但是当它从Web服务器运行时我得到错误 .

以下是我的代码对于获取错误的页面的样子:

(function () {
"use strict";

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

        try {
            doSomethingInWord();
        } catch (e) {
            console.log(e);
        }
    }
}
})();

我的“doSomethingInWord”函数如下所示:

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);
    }
}

1 回答

  • 0

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

    我很惊讶您说它在没有Visual Studio的Word中适用于您 - 我不会在此流程中遇到其他问题,尤其是在Excel Online中,加载项在_1742116中运行(并且OAuth对话框倾向于不允许在 iframes ) .

    我认为您最好的选择是加载加载项"normally",然后使用 Office.context.ui.displayDialogAsync API在单独的对话框中显示OAuth登录名 . 在此期间,请将您的加载项显示为"waiting on dialog input for login" . 然后,在OAuth登录完成后,让对话框消息返回父级,传递任何所需信息(令牌或诸如此类) .

相关问题