【发布时间】:2019-10-20 12:43:21
【问题描述】:
我正在尝试用替代文本和基础链接替换 Google 文档中的某些文本。 (该链接指向 Google SS 中的一个单元格。)
我正在处理Google Apps Script Make text a clickable URL using replaceText()的答案
脚本运行,但最后一行出现以下错误:
“执行失败:索引(114)必须小于内容长度(8)。(第116行,文件“代码”)”
“114”是指网址的长度。 “8”是指替换文本的长度,顺便说一句,“新歌”。
看来这种做法有个致命的缺陷,就是链接(URL)的长度不能超过被替换的文本的长度。 (我无法想象情况确实如此,但我看不到解决问题的方法。)我已经搜索了我使用的代码的替代方法,但没有找到。
注意:以下任何未在此脚本中定义的变量,都在本节前面的脚本中定义(为简洁起见,我省略了)。所有这些变量都正常工作。错误总是发生在下面脚本的最后一行。
var titleUrl = titleLink;
var targetString = "Song Title"
var replacementString = songTitle
var element = body.findText(targetString);
var start = element.getStartOffset();
var text = element.getElement().asText();
text.replaceText(targetString, replacementString );
text.setLinkUrl(start, start+titleUrl.length, titleUrl);
我希望将旧文本“歌曲标题”替换为“新歌曲”,并将“新歌曲”作为指向 Google 表格上单元格的可点击链接。
更新
关闭这个循环;最终代码为:
var titleUrl = titleLink;
var targetString = "Song Title"
var replacementString = songTitle
var element = body.findText(targetString);
var text = element.getElement().asText();
text.replaceText(targetString, replacementString );
text.setLinkUrl(titleUrl);
【问题讨论】:
-
您能否提供一个示例文档和脚本来复制您的问题?当然,请删除您的个人信息。