Para proteger a los usuarios de códigos HTML o JavaScript maliciosos, Apps Script Usa iframes para implementar en zona de pruebas aplicaciones web de servicios HTML o interfaces de Google para Documentos, Hojas de cálculo y Formularios de Google. (El servicio HTML no utiliza un en otras situaciones, como generar el cuerpo de un correo electrónico). La zona de pruebas impone limitaciones al código del cliente.
Modo de zona de pruebas
Todos los modos de la zona de pruebas dejarán de estar disponibles, excepto IFRAME
. Apps que usan una zona de pruebas más antigua
ahora usan automáticamente el modo IFRAME
más reciente. Si tienes secuencias de comandos que
con los modos más antiguos (NATIVE
y EMULATED
), deberías
sigue las instrucciones de migración para asegurarte
funcionan correctamente en el modo IFRAME
.
La setSandboxMode
ahora no tiene efecto cuando se lo llama.
Restricciones en el modo IFRAME
El modo de zona de pruebas IFRAME
se basa en
Función de zona de pruebas de iframe
en HTML5 con las siguientes palabras clave:
allow-same-origin
allow-forms
allow-scripts
allow-popups
allow-downloads
allow-modals
allow-popups-to-escape-sandbox
allow-top-navigation-by-user-activation
: Este atributo solo se establece para proyectos de secuencias de comandos independientes.
La palabra clave allow-top-navigation
, que permite que el contenido navegue por su
contexto de navegación de nivel superior, está restringido y no se establece como un atributo en el
en la zona de pruebas. Si necesitas redireccionar la secuencia de comandos, agrega un vínculo o un botón para la
usuario debe realizar una acción.
Cómo configurar el atributo de destino del vínculo
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 mediante la etiqueta <base>
en el encabezado.
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
“Activo” contenido como secuencias de comandos, hojas de estilo externas y XmlHttpRequests. HTTPS, no HTTP.