Home > Blockchain >  Google script automatically close UI after clicking link button
Google script automatically close UI after clicking link button

Time:11-07

I have a script that opens a UI which is used to open another spreadsheet

When I click to open the link I would like the UI to close automatically if possible.

function ServiceSetServiceSheets(){

var html = "<a href='https://docs.google.com/spreadsheets/d/xxxxxxxxxxxxxxxxxxxxxx'; target='_blank'>Open The Service Sheet"; var anchor = HtmlService.createHtmlOutput(html).setSandboxMode(HtmlService.SandboxMode.IFRAME).setHeight(60).setWidth(150); SpreadsheetApp.getUi().showModalDialog(anchor,"Click the link to")

}

Can anyone help please?

Many Thanks

CodePudding user response:

In your situation, how about using google.script.host.close() as follows? Please modify your script as follows.

From:

var html = "<a href='https://docs.google.com/spreadsheets/d/xxxxxxxxxxxxxxxxxxxxxx'; target='_blank'>サービス シートを開く";

To:

var html = "<a href='https://docs.google.com/spreadsheets/d/xxxxxxxxxxxxxxxxxxxxxx'; target='_blank' onclick='google.script.host.close()'>サービス シートを開く";
  • By this modification, when you click the link, the dialog is closed by google.script.host.close().

CodePudding user response:

Example:

Execute launchClickAndClose();

function launchClickAndClose() {
  let html = '<!DOCTYPE html><html><head><base target="_top"></head><body>';
  html  = '<input type="button" value="Doit" onClick="doSomething();" />';
  html  = '<script>function doSomething(){google.script.run.withSuccessHandler(() => {google.script.host.close()}).doitontheserver();}</script>'
  html  = '</body></html>';
  SpreadsheetApp.getUi().showModelessDialog(HtmlService.createHtmlOutput(html), "Close Automatically")

}

function doitontheserver() {
  const ss = SpreadsheetApp.getActive();
  ss.toast("Doing it");
  return;
}
  • Related