将超链接插入范围的PART(在单词中)

时间:2016-11-17 11:15:42

标签: hyperlink ms-word office-js

我正在处理一个单词加载项,我希望在一个范围的一部分中插入一个超链接(该范围是用户选择的文本)。

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

例如范围"我有一条小船" - 用户选择整个字符串,但超链接只应添加到单词" small"。

这甚至可能吗?

谢谢!

1 个答案:

答案 0 :(得分:1)

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

  1. 搜索即可。在选择内,您可以搜索" small",您将获得符合条件的范围集合。以下是如何执行此操作的示例。
  2. 
    
    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)
    })
    &#13;
    &#13;
    &#13;

    1. 拆分选择。您可以使用拆分方法逐字逐句选择。以下是有关如何执行此操作的代码示例:
    2. &#13;
      &#13;
        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)
              })
      &#13;
      &#13;
      &#13;

      希望您能找到这个有用且快乐的编码!!

      涓。