Saltar al contenido

¿Cerrar la ventana después de ejecutar una aplicación web de Google Script?

Si te encuentras con algún detalle que no comprendes puedes dejarlo en los comentarios y haremos todo lo posible de ayudarte lo más rápido posible.

Solución:

Es necesario hacer una distinción entre una aplicación web en un pestaña del navegadory un barra lateral o diálogo cuadro dentro de un documento de Google (Hoja, Formulario, Doc).

La pregunta es sobre una aplicación web en una pestaña del navegador. Si desea cerrar una barra lateral o un cuadro de diálogo, simplemente use:

google.script.host.close()

Pero esta pregunta es para una aplicación web. Puede intentar poner una etiqueta de secuencia de comandos en el HTML con código que se ejecuta automáticamente cuando se abre la ventana.


Si quieres un retraso:


Puedes intentar usar window.onload.


Si no le importa si el usuario ve algo o no, simplemente puede ejecutar Apps Script Content Service.

Encontré tu pregunta mucho después de que la hicieras, pero en caso de que tú o alguien más esté buscando la respuesta, prueba esto:

Para que la ventana del navegador se cierre, cree un archivo HTML simple que se indique a sí mismo que se cierre con la instrucción window.top.close() Me gusta esto:

Cerrar ventana.html



    

Debe devolver esto como una salida HTML para que cuando se ejecute la aplicación web, se ejecute en el lado del cliente (como dijo Sandy en la respuesta anterior). En su escenario, ya está devolviendo una salida HTML para informar que algunos “[uniqueid] está marcado como completo”, y se supone que NO desea cerrar esta ventana después de que se ejecute el script, de lo contrario, el usuario no recibirá el mensaje que pretendía. Es por eso que debe mantener la instrucción window.top.close() fuera de la misma salida HTML que da esta alerta. Para lograrlo, simplemente separe por comas ambas salidas HTML como dos valores de retorno.

Estos son los otros dos archivos que se me ocurrieron para modelar una solución para su caso de uso. FYI: empaqueté el HTML orientado al usuario en un correo electrónico para proporcionar un punto de ejecución conveniente, y el código solicitará una dirección de correo electrónico para la entrega.

Código.gs

function doGet(e)
  // code make changes to spreadsheet
  var ss = SpreadsheetApp.openById([The key for the spreadsheet you wish you modify])
  var sheet = ss.getActiveSheet()
  var lastRow = sheet.getLastRow()
  var params = JSON.stringify(e);
  var paramsArray = JSON.parse(params)
  sheet.getRange(lastRow + 1, 1).setValue('Code made changes to spreadsheet at ' + Date())
  sheet.getRange(lastRow + 1, 2).setValue(paramsArray.parameter.change)

  // here I want browser window to close
  var uniqueid = "Someuniqueid"
  return HtmlService.createHtmlOutputFromFile('Close Window'), HtmlService.createHtmlOutput(uniqueid + " is marked complete")
;

function mailIt() 
var emailAddress = Browser.inputBox('What email address do you want to send the WebApp to?')
var html = HtmlService.createTemplateFromFile('HTML Email to run Web App')
var htmlCode = html.getRawContent()
Logger.log(htmlCode)
  MailApp.sendEmail(
    name: "Publish WebApp for survey embed Test",
    to: emailAddress,
    subject: "Publish WebApp for survey embed Test",
    htmlBody:  htmlCode
  )

Correo electrónico HTML para ejecutar la aplicación web



  
Send text to spreadsheet:

Obviamente, hay algunas preguntas sin respuesta, como por qué es un requisito cerrar automáticamente una ventana mientras su aplicación web parece abrir solo una ventana que lleva un mensaje para el usuario, pero confío en que su caso de uso es más complicado que eso. , y usted y otros pueden aprovechar inteligentemente los principios de este ejemplo para su beneficio.

Nos puedes añadir valor a nuestra información cooperando tu veteranía en las explicaciones.

¡Haz clic para puntuar esta entrada!
(Votos: 2 Promedio: 4.5)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *