我阅读了JavaScript API for Office,但是当用户在Word文档中选择文本时,找不到处理程序来通知。
我知道我们可以按照以下步骤从文档中复制选定的/突出显示的文本:
Word.run(function(context) {
let body = context.document.body;
// ask for the user selected text
let range = context.document.getSelection();
});
此方法不是注册的回调或事件。使用这种方法,我必须请求更新或检查用户是否选择了任何内容。
是否存在可以注册的现有功能,以便在用户与文档交互时得到通知?
感谢您的帮助
答案 0 :(得分:2)
getSelection()方法实际上并未在文档中进行选择。它为您提供其当前选择的范围。为了获得您需要订阅文档选择事件的事件,只需使用以下内容即可实现:
function subscribeToEvent() {
Office.context.document.addHandlerAsync(Office.EventType.DocumentSelectionChanged, handler);
}
function handler(evtArgs) {
// here you can handle the event.
console.log("select");
}
另一方面,如果要通过编程方式进行操作,range.select()方法将触发选择更改事件。请检查this Script Lab snippet,它基本上是在加载时订阅事件的,然后,如果单击“运行”按钮,您将看到选择了最后一段并触发了事件。