我想使用office文档中当前选定的文本替换为相同的选定文本,但用html包围。有效地为当前选择添加超链接。
我首先阅读了选择的文本属性
var objRange = objContext.document.getSelection();
objRange.load('text');
接着是
return objContext.sync().then(function(){
var strSelection = objRange.text;
objRange.insertHtml(
"<a href='" + decodeURIComponent(strHyperlink) + "'>" + strSelection + "</a>",
Word.InsertLocation.replace
);
return objContext.sync().then(function(){
objDialog.close();
});
});
我需要一个同步来读取文本,然后另一个将更新后的文本写回文档,然后关闭对话框。但这有时会导致html被写入文档两次。有没有更好的方法来做这个而不是双上下文同步?
答案 0 :(得分:1)
要回答您的问题,如果您需要阅读文本然后写入不同的上下文,那么您需要两个同步。
但是你可以看看Range.hyperlink属性,它是可写的。我不知道它是否会给你一种方法来避免两个同步,但是它是用于你似乎使用insertHtml
做的事情。