将超链接插入范围的一部分(在单词中)

Inserting hyperlink to PART of a range (in word)

我正在开发一个 word 加载项,我想插入一个超链接到部分范围(该范围是用户选择的文本)。

我知道 range.hyperlink 方法,但我不知道如何分割范围,并且只超链接它的特定部分。

例如范围 "I have a small boat" - 用户选择整个字符串,但超链接应该只添加到单词 "small".

这可能吗?

谢谢!

抱歉重播晚了,但这里是答案。你有几个选择。一般来说,考虑这个问题的方法是,我怎样才能得到正确的范围?这样我就可以设置超链接(或执行 API 的几乎任何操作,例如插入或格式化内容!)。您的选择是。

  1. 搜索。在选择范围内,您可以搜索 "small",您将获得符合您条件的范围集合。下面是如何执行此操作的示例。

Word.run(function (context) {
 var searchResults = context.document.getSelection().search("small");
 context.load(searchResults);
 return context.sync()
 .then(function () {
    for (var i = 0; i < searchResults.items.length; i++) {
      searchResults.items[i].hyperlink = "http://dev.office.com";

    }
    return context.sync()
  })
})
.catch(function (e) {
  console.log(e.message)
})

  1. 拆分 选择。您可以使用 split 方法逐字获取您的选择。这是有关如何执行此操作的代码示例:

  Word.run(function (context) {

            var myWords = context.document.getSelection().split([" "],false, true);
            context.load(myWords);
            return context.sync()
            .then(function () {
                for (var i = 0; i < myWords.items.length; i++) {
                    if(myWords.items[i].text === "small")
                        myWords.items[i].hyperlink = "http://dev.office.com";

                }
                return context.sync()
            })



        })
        .catch(function (e) {
            console.log(e.message)
        })

希望您觉得这个编码有用且快乐!!

胡安.