Ms word 从Word office加载项中的当前位置进行搜索
假设您希望实现对单词外接程序的自定义搜索,以在光标的当前位置之后查找单词Ms word 从Word office加载项中的当前位置进行搜索,ms-word,office-js,Ms Word,Office Js,假设您希望实现对单词外接程序的自定义搜索,以在光标的当前位置之后查找单词foo的第一个实例。你可以这样做: 使用context.document.getSelection()获取光标位置的范围 使用context.document.body.search('foo')获取包含单词foo的所有实例的范围列表 迭代所有的foo范围,使用compareLocationWith()查看foo范围是否位于当前位置之后,并选择位于当前位置之后的第一个foo范围 使用Range.select()转到步骤3中选
foo
的第一个实例。你可以这样做:
context.document.getSelection()
获取光标位置的范围
context.document.body.search('foo')
获取包含单词foo的所有实例的范围列表
compareLocationWith()
查看foo范围是否位于当前位置之后,并选择位于当前位置之后的第一个foo范围Range.select()
转到步骤3中选择的foo范围上述方法似乎可行,但有点复杂。有更简单的方法吗?您可以用一行代码完成所需的场景,如下所示 首先,您需要建立从当前位置到文档结尾的搜索范围。(在这种情况下,我假设这是您需要的,例如,它也可以是当前段落的结尾)。我们通过将当前选择扩展到文档末尾来实现这一点。然后我们只需进行搜索并获得第一个匹配项(通过使用非常有用的getFirst()方法!)。然后用黄色突出显示
context.document.getSelection().expandTo(context.document.body.getRange(“end”).search(“foo”).getFirst().font.highlightColor=“yellow”代码>谢谢胡安,这太棒了!是否也有一条线可以反向搜索?或者您是否需要执行此操作matches=context.document.getSelection().expandTo(context.document.body.getRange(“开始”))。搜索(“foo”)
并匹配。加载(“项”)
,然后在then()
块中处理?