User interface 自动打开Google应用程序脚本UI

User interface 自动打开Google应用程序脚本UI,user-interface,google-apps-script,User Interface,Google Apps Script,我目前正在开发一个GoogleApps脚本应用程序,我想添加一个带有OnOpen功能的UI。但问题是,OnOpen函数只是作为一个插件或电子表格或文档文件的绑定脚本工作 我的问题是如何将应用程序脚本代码作为新添加文件的独立应用程序运行 到目前为止,我尝试使用基于时间的触发器,但应用程序脚本创建的触发器太多。是否有更好的方法触发新添加文件的onOpen功能 以下是我目前的代码: function tim(){ ScriptApp.newTrigger("createSpreadsheetE

我目前正在开发一个GoogleApps脚本应用程序,我想添加一个带有OnOpen功能的UI。但问题是,OnOpen函数只是作为一个插件或电子表格或文档文件的绑定脚本工作

我的问题是如何将应用程序脚本代码作为新添加文件的独立应用程序运行

到目前为止,我尝试使用基于时间的触发器,但应用程序脚本创建的触发器太多。是否有更好的方法触发新添加文件的onOpen功能

以下是我目前的代码:

function tim(){
    ScriptApp.newTrigger("createSpreadsheetEditTrigger")
   .timeBased()
   .everyMinutes(1)
   .create();   
}


function createSpreadsheetEditTrigger() {
  var files = DriveApp.getFoldersByName("Development Lab").next().getFoldersByName("AppsScriptProgramm").next().getFoldersByName("Excel").next().getFiles();

  while (files.hasNext()){
    file = files.next();  
    ScriptApp.newTrigger('onOpen')
      .forSpreadsheet(SpreadsheetApp.openById(file.getId()))
      .onOpen()
      .create();
  }
}

function onOpen() {
  SpreadsheetApp.getUi() 
      .createMenu('Metadata')
      .addItem('Open', 'openDialog')
      .addToUi();
}

function openDialog() {
  var html = HtmlService.createHtmlOutputFromFile('Index')
      .setSandboxMode(HtmlService.SandboxMode.IFRAME)
      .setWidth(900)
      .setHeight(400);
  SpreadsheetApp.getUi()
  .showModalDialog(html, 'Metadaten zum Dokument: '+ SpreadsheetApp.getActive().getName());
}

简单的方法是使用IF语句

    function tim(){
    ScriptApp.newTrigger("createSpreadsheetEditTrigger")
   .timeBased()
   .everyMinutes(1)
   .create();   
}
将成为,

function tim(){
var triger1 = ScriptApp.newTrigger('createSpreadsheetEditTrigger').timeBased().everyminute(1).create();
if (triger1 <2){triger1
   }
}
函数tim(){
var triger1=ScriptApp.newTrigger('createSpreadsheetEditTrigger').timeBased().everyminute(1.create();

if(triger1简单的方法是使用if语句

    function tim(){
    ScriptApp.newTrigger("createSpreadsheetEditTrigger")
   .timeBased()
   .everyMinutes(1)
   .create();   
}
将成为,

function tim(){
var triger1 = ScriptApp.newTrigger('createSpreadsheetEditTrigger').timeBased().everyminute(1).create();
if (triger1 <2){triger1
   }
}
函数tim(){
var triger1=ScriptApp.newTrigger('createSpreadsheetEditTrigger').timeBased().everyminute(1.create();

如果(triger1是的,它正在工作,但仍在创建一组触发器。是否有方法检测不必要的触发器并将其删除?我如何将限制从1分钟降低到较低的限制?或者在目录中创建新文件时直接触发OnOpen函数?是的,它正在工作,但仍在创建一组触发器。是否有其他方法检测并删除不必要文件的方法?如何将限制从1分钟降低到较低的限制?或者在目录中创建新文件时直接触发OnOpen函数?不要将其称为OnOpen.ie OnTiggerOpenDon't call OnOpen.ie OnTiggerOpen