在doc中的同一行获取文本属性

时间:2018-03-06 16:27:02

标签: google-apps-script google-docs

我正在研究谷歌应用程序脚本并陷入困境。 我有一个复选框,它将执行

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

我试着尽可能简单地解释这个问题。

0 个答案:

没有答案