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

时间:2018-09-04 00:00:49

标签: ms-word office-js

我阅读了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();
});

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

是否存在可以注册的现有功能,以便在用户与文档交互时得到通知?

感谢您的帮助

1 个答案:

答案 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,它基本上是在加载时订阅事件的,然后,如果单击“运行”按钮,您将看到选择了最后一段并触发了事件。