我有一个PowerPoint内容应用程序在PowerPoint 2013和2016的桌面版本中运行良好,但在PowerPoint Online中,它在执行Office.context.document.settings.saveAsync()期间的某个时间崩溃了(我相信)错误:
我通过这段代码跟踪了它:
var saveSelected = function (selected) {
if (Office.context && Office.context.document) {
Office.context.document.settings.set("selected", selected);
Office.context.document.settings.saveAsync();
}
else {
localStorage.setItem("selected", JSON.stringify(selected));
}
}
并且可以看到代码在这个块中运行,并将其弹出到父函数并完成执行,但片刻之后崩溃并重新加载设置还没有保存,所以我&# 39;假设崩溃发生在异步保存中的某个地方。我试图保存的数据是一个看起来像这样的对象:
{
siteUrl: "https://modtenant160315b.sharepoint.com",
type: "chart",
url:"/drives('b%21H9_EgioNdUWL9Etpw0KgzkCIo4W1XPBCt7YkrAyP0lx8OUvBlEQvQ52j2Fg2P-a0')/items('01DLGLVOTPCNS67WMCPBG22JL3VR4SOUWE')/workbook/worksheets(%27%7B00000000-0001-0000-0400-000000000000%7D%27)/charts(%27%7B00000000-0008-0000-0400-000002000000%7D%27)"
}
有什么想法吗?
编辑:我刚刚将此添加到我应用的目标网页中,这也会导致PPT在线崩溃,所以它似乎没什么用处:
Office.context.document.settings.set("dummySetting", "this is my setting");
Office.context.document.settings.saveAsync(function () {
var x = Office.context.document.settings.get("dummySetting");
$scope.sharepointUrl = x;
});
答案 0 :(得分:1)
原来这是由于过时的Office.js文件造成的。从本地版本切换到托管副本解决了崩溃问题。