Servicio HTML: restricciones

Para proteger a los usuarios de HTML o JavaScript maliciosos, el servicio HTML usa iframes para crear un entorno de pruebas para apps web o interfaces de usuario personalizadas para Documentos, Hojas de cálculo y Formularios de Google. El servicio HTML no usa un entorno de pruebas en otras situaciones, como cuando genera el cuerpo de un correo electrónico. El entorno de pruebas impone limitaciones en el código del cliente.

Modo de zona de pruebas

Con la excepción de IFRAME, todos los modos de zona de pruebas se inhabilitaron. Las apps que antes usaban los modos NATIVE o EMULATED ahora usan automáticamente el modo IFRAME. Si tu secuencia de comandos se desarrolló con un modo anterior, sigue las instrucciones de migración para asegurarte de que funcione correctamente.

El setSandboxMode método ahora no tiene efecto cuando se llama.

Restricciones en el modo IFRAME

El modo de zona de pruebas IFRAME se basa en la función de zona de pruebas de iframe en HTML5, con las siguientes palabras clave:

La palabra clave allow-top-navigation, que permite que el contenido navegue por su contexto de navegación de nivel superior, está restringida y no se establece como un atributo en el entorno de pruebas. Si necesitas redireccionar tu secuencia de comandos, agrega un vínculo o un botón para que el usuario realice una acción.

En el modo IFRAME, debes establecer el atributo de destino del vínculo en _top o _blank:

Code.js

function doGet() {
  var template = HtmlService.createTemplateFromFile('top');
  return template.evaluate().setSandboxMode(HtmlService.SandboxMode.IFRAME);
}

top.html

<!DOCTYPE html>
<html>
 <body>
   <div>
     <a href="http://google.com" target="_top">Click Me!</a>
   </div>
 </body>
</html>

También puedes anular este atributo con la etiqueta <base> dentro de la sección head de la página web adjunta:

<!DOCTYPE html>
<html>
  <head>
    <base target="_top">
  </head>
  <body>
   <div>
     <a href="http://google.com">Click Me!</a>
   </div>
 </body>
</html>

Se requiere HTTPS para el contenido activo

El contenido"activo" , como las secuencias de comandos, las hojas de estilo externas y las solicitudes XmlHttpRequest, se debe cargar a través de HTTPS, no de HTTP.