Binding.addHandlerAsync 使用加载项命令时失败
Binding.addHandlerAsync fails when using Add-in Commands
我们构建了一个 Excel 主要与表格一起使用的任务窗格加载项。我们有一些代码在 office.initalize 上执行,并将事件处理程序附加到我们之前创建的现有绑定。代码非常简单(在 TypeScript 中):
document.bindings.getAllAsync(null, bindingResult => {
let bindings = <Office.Binding[]>bindingResult.value;
if (bindings) {
bindings.forEach(b => {
// Only attach to our bindings
if (b.id.indexOf(Table.bindingPrefix) == 0)
me.attachHandler(b);
});
}
});
attachHandler = (binding: Office.Binding) => {
let eventType = Office.EventType.BindingSelectionChanged;
binding.addHandlerAsync(
eventType,
this.onBindingSelectionChanged,
null,
asyncResult => this.onHandlerAdded(eventType, asyncResult)
);
}
此代码过去在我们的 Office Online 和桌面版上运行良好。但是,我们通过修改示例插件命令清单修改了清单以包含一个插件命令(它只是打开任务窗格)。现在上面的代码在 Office Online 中失败并出现错误:
error: OSF.DDA.Error
code: 5001
message:"An internal error has occurred."
name:"Internal Error"
status:"failed"
相同的清单适用于桌面版 Office 客户端。我们不包含插件命令的旧清单仍然可以在桌面和在线上使用。这意味着这似乎特定于加载项命令 + office online。
有解决办法吗?
只是想结束这个问题的循环,说这是 Office API 中的错误,并且已经修复。
我们构建了一个 Excel 主要与表格一起使用的任务窗格加载项。我们有一些代码在 office.initalize 上执行,并将事件处理程序附加到我们之前创建的现有绑定。代码非常简单(在 TypeScript 中):
document.bindings.getAllAsync(null, bindingResult => {
let bindings = <Office.Binding[]>bindingResult.value;
if (bindings) {
bindings.forEach(b => {
// Only attach to our bindings
if (b.id.indexOf(Table.bindingPrefix) == 0)
me.attachHandler(b);
});
}
});
attachHandler = (binding: Office.Binding) => {
let eventType = Office.EventType.BindingSelectionChanged;
binding.addHandlerAsync(
eventType,
this.onBindingSelectionChanged,
null,
asyncResult => this.onHandlerAdded(eventType, asyncResult)
);
}
此代码过去在我们的 Office Online 和桌面版上运行良好。但是,我们通过修改示例插件命令清单修改了清单以包含一个插件命令(它只是打开任务窗格)。现在上面的代码在 Office Online 中失败并出现错误:
error: OSF.DDA.Error
code: 5001
message:"An internal error has occurred."
name:"Internal Error"
status:"failed"
相同的清单适用于桌面版 Office 客户端。我们不包含插件命令的旧清单仍然可以在桌面和在线上使用。这意味着这似乎特定于加载项命令 + office online。 有解决办法吗?
只是想结束这个问题的循环,说这是 Office API 中的错误,并且已经修复。