我正在使用office js version 16.0.8626.1000为Microsoft Word 2016开发一个加载项。我使用Web服务检索base64格式的文档,然后用它创建一个新的Word实例。
问题在于,无论何时从我的服务器(而不是从visual studio调试器)运行加载项,它都会打开文档,但加载项框架会显示错误
如果我从visual studio调试器运行加载项,它就不会发生这种情况,它会打开没有框架的新实例。
这是我的代码
Office.initialize = function (reason) {
// Checks for the DOM to load using the jQuery ready function.
$(document).ready(function () {
$('#get').click(function () {
openWord();
});
});
}
这是我如何检索文档(没有真正的URL):
function openWord() {
getDocumentAsBase64(function (data) {
Word.run(function (context) {
var myNewDoc = context.application.createDocument(data);
context.load(myNewDoc);
return context.sync()
.then(function () {
myNewDoc.open();
context.sync();
})
.catch(function (myError) {
//otherwise we handle the exception here!
updateStatus(myError.message);
})
}).catch(function (myError) {
updateStatus(myError.message);
});
});
}
function getDocumentAsBase64(callback) {
$.ajax({
url: 'http://myurltomydocument.com/getFile',
data: "{}",
dataType: "json",
type: "POST",
contentType: "application/json; charset=utf-8",
success: function (response) {
callback(response.d);
},
error: function (response) {
updateStatus(response.d);
}
});
}
编辑 - 2017年12月8日
如果有人想要使用Office 2016复制问题,这是我正在使用的manifest
答案 0 :(得分:0)
我不读西班牙语,但错误提及Visual Studio。我认为Office仍在尝试运行一个侧载Visual Studio的版本,它告诉你它无法做到这一点。问题可能是清单。我注意到它在很多地方仍然有字符串~remoteAppUrl
。使用VS进行调试时,此字符串将自动替换为localhost URL,但您需要手动将所有这些更改为Web服务的域,并在要从Web服务运行时再侧载新的清单。
编辑12/11/17: 如果这不能解决问题,请尝试清除Office缓存。详细信息位于:Clear the Office cache
编辑12/19/17:
试试这个:
继续文件 - > 信息 - > 检查问题 - > 检查文档 - >的检查即可。
然后在任务窗格加载项上点击全部删除
答案 1 :(得分:0)
最后我找到了解决这个问题的方法。
我在版本1711(编译8730.2127点击并运行),现在一切正常。
编辑9/1/2018: 错误再次出现。我唯一做的就是附加运行时日志来调试我的加载项清单。这仍然没有解决。