2016-11-17 104 views
1

我正在研究單詞外接程序,並且想要將超鏈接插入範圍的一部分(範圍是用戶選定的文本)。將超鏈接插入範圍的一部分(單詞中)

我知道range.hyperlink方法,但我不知道如何分割範圍,只有超鏈接的特定部分。

例如範圍「我有一條小船」 - 用戶選擇整個字符串,但只應將超鏈接添加到單詞「小」。

這甚至可能嗎?

謝謝!

+0

也許你可以搜索的範圍http://stackoverflow.com/questions/39154604/how-should-range-expandto-be-used-in-the-word-javascript-api或修改OOXML http:///stackoverflow.com/questions/36892507/insert-comment-in-word-using-office-js – Slai

回答

1

對於後期重播感到抱歉,但這裏是答案。你有幾個選擇。一般來說,想想這個問題的方法是,我怎樣才能得到正確的範圍?然後我可以設置超鏈接(或者幾乎可以對API進行任何操作,例如插入或格式化內容!)。你的選擇是。

  1. 搜索。從選擇範圍內你可以搜索「小」,你會得到一系列符合你的標準的範圍。這裏是一個如何做到這一點的例子。

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) 
 
})

  • 拆分選擇。您可以使用拆分方法逐字逐詞獲取您的選擇。這裏是如何做到這一點代碼示例:
  • 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) 
     
         })

    希望對您有所幫助和快樂編碼!

    Juan。

    +0

    非常感謝你。它現在似乎在工作。不勝感激。 – Simmer