javascript forms google-apps-script web-applications form-submit

javascript - Google Script: el botón de la barra lateral sigue abriendo una nueva pestaña



forms google-apps-script (2)

Problema:

  • Tipo <button> , si no se especifica, por defecto es type=submit . Por lo tanto, el formulario envía automáticamente los datos al servidor. Esto no es preferible en un iframe.

Solución:

  • Especifique explícitamente el tipo de botón como botón. <button type=''button'' >
  • Use event.preventDefault() para evitar el envío automático de formularios.

Referencias:

Estoy creando un script extremadamente básico para ayudarme en una de mis hojas de cálculo de Google.

He conseguido con éxito una barra lateral, con unos pocos botones (que funcionan). Sin embargo, cada vez que hago clic en uno de esos botones, también abre una nueva pestaña, con una URL similar a: " https://n-lx3mdv5ls3mdgglsq226llilxd2m4owxy72y3fy-1lu-script.googleusercontent.com/userCodeAppPanel ?"

Incluso si el botón se deja sin ninguna funcionalidad, esto todavía ocurre.

Aquí hay un ejemplo del html:

<!DOCTYPE html> <html> <head> <base target="_top"> <link rel="stylesheet" href="https://ssl.gstatic.com/docs/script/css/add-ons1.css"> <!-- The CSS package above applies Google styling to buttons and other elements. --> <style> </style> </head> <body> <div class="sidebar"> <form> <div class="block" id="buttons"> <button id="unindent">Unindent</button> <button id="indent">Indent</button> <button id="asdgdgasg">Test</button> </div> </form> </div> </body> </html>

¿Cómo puedo evitar que esta nueva pestaña se abra cada vez?


Cuando vi su problema, pensé que esto se debe a <form> . Así que propuse las siguientes modificaciones.

  1. Modifique <form> a <form onsubmit="event.preventDefault()"> .

  2. Modifique <base target="_top"> a <base target="_self"> .

  3. Eliminar <base target="_top"> .

Nota:

  • Creo que la respuesta de @ TheMaster es información más útil.

Referencias: