Header 未在 Google Apps 脚本中清除

Header not clearing in Google Apps script

我正在制作一个文档模板,用于在 header 中输出文档的名称。由于某种原因,它输出了两次文档名称。 我遇到的问题很奇怪,我会尽力描述它。当我 运行 我的代码在一个空白文档上时它工作正常,但是当我再次 运行 它在同一个文档上更新它时,名称出现两次,就像图片中一样,其他任何人都会发生同样的情况在那之后的时间,甚至是页面上以两个名字开头的内容。这仅在我 open/refresh 文档时发生,但在我 运行 脚本编辑器中的 onOpen 函数时不会发生。

function onOpen(){
    var doc = DocumentApp.getActiveDocument();
    var name = doc.getName();
    var header= doc.getHeader() || doc.addHeader();
    var footer = doc.getFooter() || doc.addFooter();
  
    //Clear Header
    try {
       header.clear();         
      } catch (e) {
       // case last element in header is partial and can't be cleared
       header.appendParagraph(" ");
       header.clear();
      }
    //Clear Footer
    try { 
      footer.clear();  
      } catch (e) {
       // case last element in footer is partial and can't be cleared
       footer.appendParagraph(" ");
       footer.clear();
      }
  
  
    //create style for header
    var headStyle = {};
    headStyle[DocumentApp.Attribute.HORIZONTAL_ALIGNMENT] = DocumentApp.HorizontalAlignment.LEFT;
    headStyle[DocumentApp.Attribute.FONT_FAMILY] = 'Georga';
    headStyle[DocumentApp.Attribute.FONT_SIZE] = 14;
    headStyle[DocumentApp.Attribute.VERTICAL_ALIGNMENT] = DocumentApp.VerticalAlignment.CENTER;
    //output header
    var headerPar = header.appendParagraph(name + " ");
    //set style to header
    headerPar.setAttributes(headStyle);
}

感谢您的帮助!

嗯 - 我只是 运行 你的代码,它运行良好,只返回 1 header。

在我 运行 它之前,我认为问题是你调用了 .appendParagraph() 两次 - 在定义上,也在 setAttributes() 上。

您可以尝试以下两种编辑方式之一:

//output header & set style to header
    var headerPar = header.appendParagraph(name + " ").setAttributes(headStyle);

//output header
  var headerPar = header.appendParagraph(name + " ");
//set style to header
  header.setAttributes(headStyle);