Google Apps脚本使用replaceText()使文本成为可点击的URL

Emp*_*yee 6 url text replace hyperlink google-apps-script

我有这个代码打开文件并使用replaceText替换字符串.

var url = 'http://www.test.com';
var doc = DocumentApp.openById(file.getId());
doc.replaceText("<<urlGoesHere>>", url);
doc.saveAndClose();
Run Code Online (Sandbox Code Playgroud)

当我打开文档时,替换已经发生,但是url不是可点击的超链接,它只是静态文本.有没有办法以编程方式使其成为可点击的链接?

我发现这种文本方法叫做setLinkUrl,但是没有文档/示例:https://developers.google.com/apps-script/reference/document/text#setLinkUrl(String )

有任何想法吗?

Ser*_*sas 16

这是它的方式,至少如果你只有一个url placeHolder.

如果您有多个,那么您应该迭代整个doc内容以找到每个或所有内容并将它们全部替换掉​​.

function myFunction() {
  var url = 'http://www.google.com';
  var doc = DocumentApp.getActiveDocument();// or DocumentApp.openById(file.getId()); as in your example code
  var element = doc.getBody().findText("<<urlGoesHere>>");
  if(element){ // if found a match
    var start = element.getStartOffset();
    var text = element.getElement().asText();
    text.replaceText("<<urlGoesHere>>",url);
    text.setLinkUrl(start, start+url.length, url);
    doc.saveAndClose();
  } // else do nothing
}
Run Code Online (Sandbox Code Playgroud)

  • 这很有效,谢谢!我没有足够的声誉来赞成.此外,与往常一样,感谢您对Google Apps脚本社区的贡献.我经常在你的回答中找到我的许多问题的答案. (2认同)