Class HtmlOutput

HtmlOutput

Un objeto HtmlOutput que se puede entregar desde una secuencia de comandos. Debido a consideraciones de seguridad, las secuencias de comandos no pueden mostrar HTML directamente en un navegador. En cambio, deben limpiarlo para que no pueda realizar acciones maliciosas. Puedes mostrar HTML depurado de la siguiente manera:

function doGet() {
  return HtmlService.createHtmlOutput('<b>Hello, world!</b>');
}
El código en el HtmlOutput puede incluir JavaScript y CSS incorporados. (Se trata de JavaScript estándar del cliente que manipula el DOM, no Apps Script). Todo este contenido se encuentra en una zona de pruebas mediante la zona de pruebas de iframe. Para obtener más información, consulta la guía de restricciones en el servicio HTML.

Métodos

MétodoTipo de datos que se muestraDescripción breve
addMetaTag(name, content)HtmlOutputAgrega una metaetiqueta a la página.
append(addedContent)HtmlOutputAgrega contenido nuevo al contenido de esta HtmlOutput.
appendUntrusted(addedContent)HtmlOutputAgrega contenido nuevo al contenido de este HtmlOutput mediante escape contextual.
asTemplate()HtmlTemplateMuestra un HtmlTemplate respaldado por este HtmlOutput.
clear()HtmlOutputBorra el contenido actual.
getAs(contentType)BlobMuestra los datos dentro de este objeto como un BLOB convertido al tipo de contenido especificado.
getBlob()BlobMuestra los datos dentro de este objeto como un BLOB.
getContent()StringObtiene el contenido de este HtmlOutput.
getFaviconUrl()StringObtiene la URL de una etiqueta de vínculo de ícono de página agregada a la página mediante una llamada a setFaviconUrl(iconUrl).
getHeight()IntegerObtiene la altura inicial del diálogo personalizado en Documentos, Hojas de cálculo o Formularios de Google.
getMetaTags()HtmlOutputMetaTag[]Obtiene un array de objetos que representan metaetiquetas que se agregan a la página llamando a addMetaTag(name, content).
getTitle()StringObtiene el título de la página de salida.
getWidth()IntegerObtiene el ancho inicial del diálogo personalizado en Documentos, Hojas de cálculo o Formularios de Google.
setContent(content)HtmlOutputEstablece el contenido de este HtmlOutput.
setFaviconUrl(iconUrl)HtmlOutputAgrega una etiqueta de vínculo a un ícono de página en la página.
setHeight(height)HtmlOutputEstablece la altura inicial del diálogo personalizado en Documentos, Hojas de cálculo o Formularios de Google.
setSandboxMode(mode)HtmlOutputEste método ahora no tiene efecto. Anteriormente, configuraba el elemento sandbox mode que se usaba para las secuencias de comandos del cliente.
setTitle(title)HtmlOutputEstablece el título de la página de salida.
setWidth(width)HtmlOutputEstablece el ancho inicial de un diálogo personalizado en Documentos, Hojas de cálculo o Formularios de Google.
setXFrameOptionsMode(mode)HtmlOutputEstablece el estado del encabezado X-Frame-Options de la página, que controla la prevención de clickjacking.

Documentación detallada

addMetaTag(name, content)

Agrega una metaetiqueta a la página. Se ignoran las metaetiquetas incluidas directamente en un archivo HTML de Apps Script. Solo se permiten las siguientes metaetiquetas:

<meta name="apple-mobile-web-app-capable" content="..."/>
<meta name="google-site-verification" content="..."/>
<meta name="mobile-web-app-capable" content="..."/>
<meta name="viewport" content="..."/>
var output = HtmlService.createHtmlOutput('<b>Hello, world!</b>');
output.addMetaTag('viewport', 'width=device-width, initial-scale=1');

Parámetros

NombreTipoDescripción
nameStringEs el valor del atributo de nombre de la metaetiqueta.
contentStringEs el valor del atributo de contenido de la metaetiqueta.

Devolvedor

HtmlOutput: Es este resultado para el encadenamiento.


append(addedContent)

Agrega contenido nuevo al contenido de esta HtmlOutput. Úsalo solo para contenido de una fuente de confianza, ya que no tiene escape.

// Log "<b>Hello, world!</b><p>Hello again, world.</p>"
var output = HtmlService.createHtmlOutput('<b>Hello, world!</b>');
output.append('<p>Hello again, world.</p>');
Logger.log(output.getContent());

Parámetros

NombreTipoDescripción
addedContentStringEl contenido que se agregará.

Devolvedor

HtmlOutput: Es este resultado para el encadenamiento.

Arroja

Error: Si el formato HTML tiene errores de formato

Consulta también


appendUntrusted(addedContent)

Agrega contenido nuevo al contenido de este HtmlOutput mediante escape contextual.

Este método escapa correctamente el contenido según el estado actual de HtmlOutput, de modo que el resultado sea una string segura sin lenguaje de marcado ni efectos secundarios. Úsalo en lugar de agregar cada vez que agregues contenido de una fuente no confiable, como el de un usuario, para evitar permitir accidentalmente un error de secuencia de comandos entre sitios (XSS) en el que el contenido o el lenguaje de marcado que agregas provocan una ejecución inesperada del código.

// Log "<b>Hello, world!</b>&lt;p&gt;Hello again, world.&lt;/p&gt;"
var output = HtmlService.createHtmlOutput('<b>Hello, world!</b>');
output.appendUntrusted('<p>Hello again, world.</p>');
Logger.log(output.getContent());

Parámetros

NombreTipoDescripción
addedContentStringEl contenido que se agregará.

Devolvedor

HtmlOutput: Es este resultado para el encadenamiento.

Arroja

Error: Si el HTML tiene errores de formato

Consulta también


asTemplate()

Muestra un HtmlTemplate respaldado por este HtmlOutput. Este método se puede usar para crear una plantilla de forma incremental. Los cambios futuros en HtmlOutput también afectarán el contenido de HtmlTemplate.

var output = HtmlService.createHtmlOutput('<b>Hello, world!</b>');
var template = output.asTemplate();

Devolvedor

HtmlTemplate: Es el nuevo HtmlTemplate.


clear()

Borra el contenido actual.

var output = HtmlService.createHtmlOutput('<b>Hello, world!</b>');
output.clear();

Devolvedor

HtmlOutput: Es este resultado para el encadenamiento.


getAs(contentType)

Muestra los datos dentro de este objeto como un BLOB convertido al tipo de contenido especificado. Este método agrega la extensión adecuada al nombre de archivo, por ejemplo, “myfile.pdf”. Sin embargo, se supone que la parte del nombre de archivo que sigue al último punto (si existe) es una extensión existente que se debe reemplazar. En consecuencia, “ShoppingList.12.25.2014” se convierte en “ShoppingList.12.25.pdf”.

Para ver las cuotas diarias de las conversiones, consulta Cuotas de los servicios de Google. Los dominios de Google Workspace creados recientemente pueden estar sujetos a cuotas más estrictas de forma temporal.

Parámetros

NombreTipoDescripción
contentTypeStringEl tipo de MIME al que se realizará la conversión. Para la mayoría de los BLOB, 'application/pdf' es la única opción válida. En el caso de las imágenes en formato BMP, GIF, JPEG o PNG, también es válido cualquiera de los valores 'image/bmp', 'image/gif', 'image/jpeg' o 'image/png'.

Devolvedor

Blob: Son los datos como un BLOB.


getBlob()

Muestra los datos dentro de este objeto como un BLOB.

Devolvedor

Blob: Son los datos como un BLOB.


getContent()

Obtiene el contenido de este HtmlOutput.

// Log "<b>Hello, world!</b>"
var output = HtmlService.createHtmlOutput('<b>Hello, world!</b>');
Logger.log(output.getContent());

Devolvedor

String: Es el contenido que se entrega.


getFaviconUrl()

Obtiene la URL de una etiqueta de vínculo de ícono de página agregada a la página mediante una llamada a setFaviconUrl(iconUrl). Se ignoran las etiquetas de vínculo del ícono de página incluidas directamente en un archivo HTML de Apps Script.

var output = HtmlService.createHtmlOutput('<b>Hello, world!</b>');
output.setFaviconUrl('http://www.example.com/image.png');
Logger.log(output.getFaviconUrl());

Devolvedor

String: Es la URL de la imagen del ícono de página.


getHeight()

Obtiene la altura inicial del diálogo personalizado en Documentos, Hojas de cálculo o Formularios de Google. Si HtmlOutput se publica como una aplicación web, este método muestra null. Para cambiar el tamaño de un diálogo que ya está abierto, llama a google.script.host.setHeight(height) en el código del cliente.

var output = HtmlService.createHtmlOutput('<b>Hello, world!</b>');
output.setHeight(200);
Logger.log(output.getHeight());

Devolvedor

Integer: Es la altura en píxeles.


getMetaTags()

Obtiene un array de objetos que representan metaetiquetas que se agregan a la página llamando a addMetaTag(name, content). Se ignoran las metaetiquetas incluidas directamente en un archivo HTML de Apps Script.

var output = HtmlService.createHtmlOutput('<b>Hello, world!</b>');
output.addMetaTag('viewport', 'width=device-width, initial-scale=1');

var tags = output.getMetaTags();
Logger.log('<meta name="%s" content="%s"/>', tags[0].getName(), tags[0].getContent());

Devolvedor

HtmlOutputMetaTag[]: Es un array de objetos que representa las metaetiquetas que se agregan a la página mediante una llamada a addMetaTag(name, content).


getTitle()

Obtiene el título de la página de salida. Ten en cuenta que se ignora el elemento HTML <title>.

var output = HtmlService.createHtmlOutput('<b>Hello, world!</b>');
Logger.log(output.getTitle());

Devolvedor

String: Es el título de la página.


getWidth()

Obtiene el ancho inicial del diálogo personalizado en Documentos, Hojas de cálculo o Formularios de Google. Si HtmlOutput se publica como una aplicación web, este método muestra null. Para cambiar el tamaño de un diálogo que ya está abierto, llama a google.script.host.setWidth(width) en el código del cliente.

var output = HtmlService.createHtmlOutput('<b>Hello, world!</b>');
output.setWidth(200);
Logger.log(output.getWidth());

Devolvedor

Integer: Es el ancho en píxeles.


setContent(content)

Establece el contenido de este HtmlOutput.

var output = HtmlService.createHtmlOutput();
output.setContent('<b>Hello, world!</b>');

Parámetros

NombreTipoDescripción
contentStringEs el contenido que se entregará.

Devolvedor

HtmlOutput: Es este resultado para el encadenamiento.

Arroja

Error: Si el formato HTML tiene errores de formato


setFaviconUrl(iconUrl)

Agrega una etiqueta de vínculo a un ícono de página en la página. Se ignoran las etiquetas de vínculo del ícono de página incluidas directamente en un archivo HTML de Apps Script.

var output = HtmlService.createHtmlOutput('<b>Hello, world!</b>');
output.setFaviconUrl('http://www.example.com/image.png');

Parámetros

NombreTipoDescripción
iconUrlStringEs la URL de la imagen del ícono de página, en la que la extensión de imagen indica el tipo de imagen.

Devolvedor

HtmlOutput: Es este resultado para el encadenamiento.


setHeight(height)

Establece la altura inicial del diálogo personalizado en Documentos, Hojas de cálculo o Formularios de Google. Si, en cambio, HtmlOutput se publica como una aplicación web, este método no tiene efecto. Para cambiar el tamaño de un diálogo que ya está abierto, llama a google.script.host.setHeight(height) en el código del cliente.

var output = HtmlService.createHtmlOutput('<b>Hello, world!</b>');
output.setHeight(200);

Parámetros

NombreTipoDescripción
heightIntegerEs la nueva altura en píxeles; null da como resultado un valor predeterminado.

Devolvedor

HtmlOutput: Es este resultado para el encadenamiento.


setSandboxMode(mode)

Este método ahora no tiene efecto. Anteriormente, configuraba el elemento sandbox mode que se usaba para las secuencias de comandos del cliente. Para proteger a los usuarios del HTML o JavaScript maliciosos, el código del cliente que se publica desde el servicio HTML se ejecuta en una zona de pruebas de seguridad que impone restricciones en el código. Originalmente, este método permitía a los autores de secuencias de comandos elegir entre diferentes versiones de la zona de pruebas, pero ahora todas las secuencias de comandos ahora usan el modo IFRAME, independientemente del modo de zona de pruebas configurado. Para obtener más información, consulta la guía de restricciones en el servicio HTML.

El modo IFRAME impone muchas menos restricciones que los otros modos de zona de pruebas y se ejecuta más rápido, pero no funciona en absoluto en algunos navegadores más antiguos, incluido Internet Explorer 9. El modo de zona de pruebas se puede leer en una secuencia de comandos del cliente mediante la inspección de google.script.sandbox.mode. Ten en cuenta que esta propiedad muestra el modo real en el cliente, que puede diferir del modo solicitado en el servidor si el modo solicitado no es compatible con el navegador del usuario.

<!-- Read the sandbox mode (in a client-side script). -->
<script>
  alert(google.script.sandbox.mode);
</script>

Parámetros

NombreTipoDescripción
modeSandboxModeEl modo de zona de pruebas que se usará.

Devolvedor

HtmlOutput: Es este resultado para el encadenamiento.


setTitle(title)

Establece el título de la página de salida. En el caso de las apps web, es el título de toda la página, mientras que, en el caso de HtmlOutput que se muestra en Hojas de cálculo de Google, es el título del diálogo.

var output = HtmlService.createHtmlOutput('<b>Hello, world!</b>');
output.setTitle('My First Page');

Parámetros

NombreTipoDescripción
titleStringEl nuevo título.

Devolvedor

HtmlOutput: Es este resultado para el encadenamiento.


setWidth(width)

Establece el ancho inicial de un diálogo personalizado en Documentos, Hojas de cálculo o Formularios de Google. Si, en cambio, HtmlOutput se publica como una aplicación web, este método no tiene efecto. Para cambiar el tamaño de un diálogo que ya está abierto, llama a google.script.host.setWidth(width) en el código del cliente.

var output = HtmlService.createHtmlOutput('<b>Hello, world!</b>');
output.setWidth(200);

Parámetros

NombreTipoDescripción
widthIntegerEl nuevo ancho en píxeles; null da como resultado un valor predeterminado.

Devolvedor

HtmlOutput: Es este resultado para el encadenamiento.


setXFrameOptionsMode(mode)

Establece el estado del encabezado X-Frame-Options de la página, que controla la prevención de clickjacking.

La configuración de XFrameOptionsMode.ALLOWALL permite que cualquier sitio incruste la página, por lo que el desarrollador debe implementar su propia protección contra el clickjacking.

Si una secuencia de comandos no establece un modo X-Frame-Options, Apps Script usa el modo XFrameOptionsMode.DEFAULT como predeterminado.

// Serve HTML with no X-Frame-Options header (in Apps Script server-side code).
var output = HtmlService.createHtmlOutput('<b>Hello, world!</b>');
output.setXFrameOptionsMode(HtmlService.XFrameOptionsMode.ALLOWALL);

Parámetros

NombreTipoDescripción
modeXFrameOptionsModeModo de opciones de XFrame que se establecerá.

Devolvedor

HtmlOutput: Es este resultado para el encadenamiento.