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