Microsoft Word JavaScript API - 用于文档中文本选择的事件处理程序

Man*_*our 6 ms-word office-js

我阅读了Office 的 JavaScript API,但找不到当用户在 Word 文档中选择文本时通知的处理程序。

我知道我们可以从文档中复制选定/突出显示的文本,如下所示:

Word.run(function(context) {
    let body = context.document.body;

    // ask for the user selected text
    let range = context.document.getSelection();
});
Run Code Online (Sandbox Code Playgroud)

此方法不是注册的回调或事件。通过这种方法,我必须请求更新或检查用户是否选择了任何内容。

是否有一个现有功能可供我注册以获取用户与文档交互的通知?

在此先感谢您的帮助

Jua*_*ori 7

getSelection() 方法实际上并不在文档中进行选择。它为您提供当前选择的范围。为了获取订阅文档选择事件所需的事件,您可以通过以下方式实现相当简单:

function subscribeToEvent() {
    Office.context.document.addHandlerAsync(Office.EventType.DocumentSelectionChanged, handler);
}

function handler(evtArgs) { 
  // here you can handle the event. 
    console.log("select");
}
Run Code Online (Sandbox Code Playgroud)

另一方面,如果您想以编程方式执行此操作,则 range.select() 方法将触发选择更改事件。请查看此脚本实验室片段,它基本上订阅加载时的事件,然后如果单击“运行”按钮,您将看到最后一段被选中并触发事件。