如何使整个Google文档文档不突出显示? (Google Apps脚本)

时间:2019-10-10 20:25:14

标签: google-apps-script google-docs google-apps-script-addon

我正在制作一个程序,它将向您显示google docs文档中最常用的单词,然后突出显示它们。我想要一个菜单​​按钮,单击该按钮将取消突出显示当前突出显示的所有内容。

我找不到正在做类似事情的人,所以我尝试做这样的事情:

--non-native, cryptographic
CREATE PROCEDURE [dbo].[RandomBigInt]
    @result BIGINT OUTPUT
AS BEGIN
    SET @result = CAST ( CRYPT_GEN_RANDOM ( 8 ) AS BIGINT ) ;
END
GO

--native, non-cryptographic
CREATE PROCEDURE [dbo].[NativeRandomBigInt]
    @result BIGINT OUTPUT
WITH NATIVE_COMPILATION ,
     SCHEMABINDING
AS BEGIN ATOMIC WITH ( TRANSACTION ISOLATION LEVEL = SNAPSHOT   ,
                       LANGUAGE                    = N'English' )
    SET @result = CAST ( CAST ( NEWID ( ) AS BINARY ( 8 ) ) AS BIGINT ) ;
END
GO

但是它没有用,给我错误“ TypeError:在对象(我的文档名称)中找不到函数getElement

是否可以将整个文档的突出显示/背景色设置为白色/透明?

1 个答案:

答案 0 :(得分:0)

尝试一下:

function clearHighLight() {
  var bgcolor='#ffffff';//white
  var doc=DocumentApp.getActiveDocument();
  var rangeBuilder=doc.newRange();
  var bdy=doc.getBody();
  var numCh=bdy.getNumChildren();
  for (var i=0;i<numCh;i++) {
    var child=bdy.getChild(i);//collect all range elements
    var all=rangeBuilder.addElement(child);
  }
  doc.setSelection(all);
  var selectedElements = all.getRangeElements();
  for(var i=0;i<selectedElements.length;i++) {
    var selElem = selectedElements[i];
    var el = selElem.getElement();
    var isPartial = selElem.isPartial();
    if(isPartial) {
      var selStart = selElem.getStartOffset();
      var selEnd = selElem.getEndOffsetInclusive();
      el.asText().setBackgroundColor(selStart, selEnd, bgcolor)      
    }else {
      var selStart = selElem.getStartOffset();
      var selEnd = selElem.getEndOffsetInclusive();
      el.asText().setBackgroundColor(bgcolor);
    }
  }
  var rg=doc.newRange();
  rg.addElement(bdy.getChild(0));//child zero normally has nothing in it
  doc.setSelection(rg.build());
}