我正在研究谷歌应用程序脚本并陷入困境。 我有一个复选框,它将执行
1。如果选中 而不是以纯文本显示文档中的所有超链接。
2。如果未选中 而不是将所有纯文本转换为超链接。
如果用户更改任何超链接的颜色(默认为蓝色),则检查文本应保留其颜色。它的工作。
但是,如果同一行中有两个超链接文本,则与此代码相比,只会更改第二个文本颜色。 有什么办法,我们可以检查同一行中是否有多个超链接。
function removeHyperlink() {
var Docattributes=body.getAttributes();
var docdetails = DocumentApp.getActiveDocument();
var Fields = doc.getNamedRanges(" Fields");
for(var i = 0; i < Fields.length; i++) {
var rangeElement = Fields[i].getRange().getRangeElements()[0];
var startIndex = rangeElement.getStartOffset();
var endOfIndex = rangeElement.getEndOffsetInclusive();
var obj = rangeElement.getElement().asText().editAsText();
var forFont= rangeElement.getElement().asText();
var attributes = {};
attributes[DocumentApp.Attribute.UNDERLINE] = false;//to remove the hyperlinks
attributes[DocumentApp.Attribute.FOREGROUND_COLOR] = '#000000';
// If there are more than one hyperlink in same line
if (startIndex > 0) {
attributes[DocumentApp.Attribute.FOREGROUND_COLOR] = obj.getAttributes(startIndex-1)[DocumentApp.Attribute.FOREGROUND_COLOR];
}
obj.setAttributes(startIndex,endOfIndex,attributes);
}
}
我试着尽可能简单地解释这个问题。