我正在为Microsoft Word开发任务窗格加载项。到目前为止,我可以通过滥用OOXML插入功能将注释放置在来自边栏的Docx中。
我想知道是否可以监视最终用户对评论的操作。评论是否被用户删除或接受?监视评论的上下文也很重要-更改是否很大?
我考虑了以下方法:
为注释的上下文创建ContentControl,可以将事件挂接到该注释的检查选择和更改的事件。不利之处在于这些ContentControl会影响用户界面,并且最终用户可能无法理解。还有更多的“背景”方法可以做到这一点而又不会对UI造成太大影响?
在评论中创建一个交互超链接。我不确定我们是否可以将其“捕获”为事件或将JavaScript钩子附加到该钩子上,从而使其真正实现该加载项?
按设置的时间间隔轮询文档,以确定注释或注释上下文是否发生了任何变化。我不确定这将是正确的钩子,以及如何在文档中准确定位所有更改。
我错过了一种方法吗?
我知道在Office-js的路线图中已经添加了这些评论,但这已经有两年了,所以我不确定这样做的时限是什么。
@Cindy感谢您抽出宝贵的时间回复!在您的帮助下,我已经可以使用隐藏的Content Control作为注释的OOXML摘录来获得有效的概念证明(因此,基本上是方法1与OOXML插入相结合)。
我现在可以通过向内容控件添加绑定并使用EventType.BindingDataChanged
来捕获一些交互,如下所示:
Office.context.document.bindings.addFromNamedItemAsync("MyContentControlTest", "text", {}, function (result) {
if (result.status == "succeeded") {
result.value.addHandlerAsync (
Office.EventType.BindingSelectionChanged, function()
{console.log("Don't touch me");}
)
})
})
在ContentControl上附加绑定仍然有些谨慎,但是我无法将事件侦听器直接添加到ContentControl。给定一个命名的内容控件(MyContentControlTest),如何附加事件like the OnDataChanged?如果我没看错的话,最后一个功能仍在预览中,是否有办法找出预期的版本?