我正在开发一个单词add,其中有usecase在Binding中插入Rich Text Format.My Binding Type是'Text',我还将coercionType设置为'Html'仍然没有替换绑定。我的主机应用程序是在线。这是在word桌面应用程序中工作。但我希望它在word在线。 请建议。 感谢
/*
*addBindingToData
*@param userSelectedText -- is a string selected in word document
*/
function addBindingToData(userSelectedText) {
var bindVariableIdPrefix = userSelectedText + '_Binding';
Office.context.document.bindings.addFromSelectionAsync(Office.BindingType.Text, {
id: bindVariableIdPrefix + '__' + count
}, function(asyncResult) {
if (asyncResult.status == Office.AsyncResultStatus.Failed) {
console.log('Action failed. Error: ' + asyncResult.error.message);
} else {
console.log('Added new binding with type: ' + asyncResult.value.type + ' and id: ' + asyncResult.value.id);
getVarArrayOnSelection(asyncResult.value.id,userSelectedText, bindVariableIdPrefix).then(function(bindings) {
createInputboxes(bindings);
});
}
});
count++;
}
Office.context.document.bindings.getByIdAsync(obj.id,function(asyncResult) {
if (asyncResult.status == Office.AsyncResultStatus.Failed) {
console.log('Action failed. Error: ' + asyncResult.error.message);
} else {
console.log(asyncResult.value.id+'got Id');
var BindingId = asyncResult.value;
BindingId.setDataAsync("<b>Hello</b> World!", {coercionType: "html"}, function (asyncResult) {
if (asyncResult.status == "failed") {
console.log('Error: ' + asyncResult.error.message);
}
});
}
});
答案 0 :(得分:1)
经过进一步调查后,我能够重新解决这个问题并了解根本原因。
长话短说是:当在文档中创建绑定时,实际发生的是将新的内容控件添加到文档中。根据创建绑定时用户的选择,创建一种内容控件,它可以是:
BLOCK 内容控制:如果选择包含完整的段落或段落,则会创建 BLOCK 内容控件。在这种情况下,HTML插入成功(这是我正在尝试的)。
好消息是,这是一个已知问题,我们正在努力在不久的将来实现这一目标。
我将原始答案作为参考。 谢谢! =================原始答案============================
我在Word Online中尝试使用您的代码,但我无法重现此问题。我可以在文档中看到正确打印的HTML。
有几个问题:
谢谢! 涓。