或原始格式的google文档超链接。
我试图做下一件事:
var links;
var nameArr = ["1", "2", "3", "4", "5", "6"];
var tempArr= ["11", "12", "13", "14", "15", "16"];
for (i = 0; i < nameArr.length; i++) {
nameArr[i].setUrlLink("https://en.wikipedia.org/wiki/" + tempArr[i] + "/detection"
links = links + ", "+ nameArr[i];
}
我得到一个错误,因为我不能对字符串使用setLinkUrl,只能在文本对象上使用-没有找到将字符串转换为文本的方法。
尽管,如果我按原样粘贴它,则“ http ...”显示为常规字符串-而非链接。
答案 0 :(得分:0)
链接是关联元素的“丰富”功能(通常为Text
)。因此,要向普通文本添加链接,首先必须获取关联的Text
元素,然后在其上调用setLinkUrl
。
与其他丰富格式方法一样,附加元素继承了前一个兄弟元素的格式规范。因此,如果格式化父级的最后一个元素,则附加到父级的下一个元素也可能会以这种方式进行格式化。我为分隔符文本明确指定了一个nullstring
URL,以避免链接超出实际显示文本的范围。 (这意味着,如果您在调用此函数后以编程方式附加到Paragraph
,则该附加文本将具有与数组中最后一个显示文本相同的URL。)
这个简单的函数将Paragraph
以及显示文本和URI的数组作为输入,并将它们添加到末尾。
/**
* Create links at the end of the given paragraph with the given text and the given urls.
* @param {GoogleAppsScript.Document.Paragraph} pg The paragraph to hold the link array
* @param {string[]} values The display text associated with the given links
* @param {string[]} links The URI for the given link text
* @param {string} [separator] text that should separate the given links. Default is comma + space, `", "`
* @returns {GoogleAppsScript.Document.Paragraph} the input paragraph, for chaining
*/
function appendLinkArray(pg, values, links, separator) {
if (!pg || !values || !links)
return;
if (!values.length || !links.length || values.length > links.length)
throw new Error("Bad input arguments");
if (separator === undefined)
separator = ", ";
// Add a space before the link array if there isn't one at the end of any existing text.
if (pg.getText() && (!pg.getText().match(/ $/) || !pg.getText().match(/ $/).length))
pg.appendText(" ").setLinkUrl("");
// Add each link display text as a new `Text` object, and set its link url.
links.forEach(function (url, i) {
var text = values[i] || url;
pg.appendText(text)
.setLinkUrl(0, text.length - 1, url);
if (separator && i < links.length - 1)
pg.appendText(separator).setLinkUrl("");
});
return pg;
}