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 su lugar, deben limpiarlo para que no pueda realizar acciones maliciosas. Puedes devolver HTML depurado de la siguiente manera:
function doGet() { return HtmlService.createHtmlOutput('<b>Hello, world!</b>'); }El código en
HtmlOutput
puede incluir JavaScript y CSS incorporados. (Este es JavaScript estándar del cliente que manipula el DOM, no Apps Script). Todo este contenido está protegido mediante sandboxing de iframe. Para obtener más información, consulte la guía de restricciones en el servicio HTML.Métodos
Método | Tipo de datos que se muestra | Descripción breve |
---|---|---|
addMetaTag(name, content) | HtmlOutput | Agrega una metaetiqueta a la página. |
append(addedContent) | HtmlOutput | Agrega nuevo contenido al contenido de este HtmlOutput . |
appendUntrusted(addedContent) | HtmlOutput | Agrega contenido nuevo al contenido de este HtmlOutput mediante el escape contextual. |
asTemplate() | HtmlTemplate | Muestra un HtmlTemplate respaldado por este HtmlOutput . |
clear() | HtmlOutput | Borra el contenido actual. |
getAs(contentType) | Blob | Muestra los datos dentro de este objeto como un BLOB convertido al tipo de contenido especificado. |
getBlob() | Blob | Muestra los datos dentro de este objeto como un BLOB. |
getContent() | String | Obtiene el contenido de este HtmlOutput . |
getFaviconUrl() | String | 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) . |
getHeight() | Integer | Obtiene la altura inicial del diálogo personalizado en Documentos, Hojas de cálculo o Formularios de Google. |
getMetaTags() | HtmlOutputMetaTag[] | Obtiene un arreglo de objetos que representan metaetiquetas agregadas a la página mediante una llamada a addMetaTag(name, content) . |
getTitle() | String | Obtiene el título de la página de salida. |
getWidth() | Integer | Obtiene el ancho inicial del diálogo personalizado en Documentos, Hojas de cálculo o Formularios de Google. |
setContent(content) | HtmlOutput | Configura el contenido de este HtmlOutput . |
setFaviconUrl(iconUrl) | HtmlOutput | Agrega a la página una etiqueta de vínculo para un ícono de página. |
setHeight(height) | HtmlOutput | Establece la altura inicial del diálogo personalizado en Documentos, Hojas de cálculo o Formularios de Google. |
setSandboxMode(mode) | HtmlOutput | Este método ahora no tiene efecto; antes configuraba el sandbox
mode que se usa para las secuencias de comandos del cliente. |
setTitle(title) | HtmlOutput | Establece el título de la página de salida. |
setWidth(width) | HtmlOutput | Establece el ancho inicial de un diálogo personalizado en Documentos, Hojas de cálculo o Formularios de Google. |
setXFrameOptionsMode(mode) | HtmlOutput | Establece el estado del encabezado X-Frame-Options de la página, que controla la prevención del 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
Nombre | Tipo | Descripción |
---|---|---|
name | String | El valor del atributo de nombre de la metaetiqueta. |
content | String | El valor del atributo de contenido de la metaetiqueta. |
Volver
HtmlOutput
: Este resultado, para encadenar.
append(addedContent)
Agrega nuevo contenido al contenido de este HtmlOutput
. Úsalo solo para contenido de una fuente confiable, 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
Nombre | Tipo | Descripción |
---|---|---|
addedContent | String | El contenido que se agregará. |
Volver
HtmlOutput
: Este resultado, para encadenar.
Arroja
Error
: Si el HTML tiene un formato incorrecto
Consulta también
appendUntrusted(addedContent)
Agrega contenido nuevo al contenido de este HtmlOutput
mediante el escape contextual.
Con este método, se escapa correctamente el contenido en función del estado actual de HtmlOutput
, de modo que el resultado sea una string segura, sin lenguaje de marcado ni efectos secundarios. Usa esto en lugar de usar anexar cada vez que agregues contenido de una fuente no confiable, como de un usuario, para evitar accidentalmente permitir un error de secuencias de comandos entre sitios (XSS) en el que el contenido o el lenguaje de marcado que agregues causa la ejecución inesperada de código.
// Log "<b>Hello, world!</b><p>Hello again, world.</p>" var output = HtmlService.createHtmlOutput('<b>Hello, world!</b>'); output.appendUntrusted('<p>Hello again, world.</p>'); Logger.log(output.getContent());
Parámetros
Nombre | Tipo | Descripción |
---|---|---|
addedContent | String | El contenido que se agregará. |
Volver
HtmlOutput
: Este resultado, para encadenar.
Arroja
Error
: Si el HTML tiene un formato incorrecto
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();
Volver
HtmlTemplate
: Es el nuevo HtmlTemplate
.
clear()
Borra el contenido actual.
var output = HtmlService.createHtmlOutput('<b>Hello, world!</b>'); output.clear();
Volver
HtmlOutput
: Este resultado, para encadenar.
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 del archivo, por ejemplo, &myt.myfile.pdf". Sin embargo, se supone que la parte del nombre de archivo que sigue al último período (si existe) es una extensión existente que se debe reemplazar. En consecuencia, "ShoppingList.15.15.2014" pasa a ser "ShoppingList.12.25.pdf".
Si quieres ver las cuotas diarias para conversiones, consulta Cuotas para servicios de Google. Es posible que los dominios de Google Workspace recién creados estén sujetos a cuotas más estrictas.
Parámetros
Nombre | Tipo | Descripción |
---|---|---|
contentType | String | El 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. Para imágenes en formato BMP, GIF, JPEG o PNG, también son válidos 'image/bmp' , 'image/gif' , 'image/jpeg' o 'image/png' . |
Volver
Blob
: los datos como un BLOB
getBlob()
getContent()
Obtiene el contenido de este HtmlOutput
.
// Log "<b>Hello, world!</b>" var output = HtmlService.createHtmlOutput('<b>Hello, world!</b>'); Logger.log(output.getContent());
Volver
String
: Es el contenido que se publica.
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)
. Las etiquetas del vínculo del ícono de página que se incluyen directamente en un archivo HTML de Apps Script se ignoran.
var output = HtmlService.createHtmlOutput('<b>Hello, world!</b>'); output.setFaviconUrl('http://www.example.com/image.png'); Logger.log(output.getFaviconUrl();
Volver
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());
Volver
Integer
: la altura, en píxeles.
getMetaTags()
Obtiene un arreglo de objetos que representan metaetiquetas agregadas a la página mediante una llamada 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());
Volver
HtmlOutputMetaTag[]
: Es un array de objetos que representa las metaetiquetas agregadas a la página mediante una llamada a addMetaTag(name, content)
.
getTitle()
Obtiene el título de la página de salida. Tenga en cuenta que se ignora el elemento HTML <title>.
var output = HtmlService.createHtmlOutput('<b>Hello, world!</b>'); Logger.log(output.getTitle());
Volver
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());
Volver
Integer
: El ancho en píxeles.
setContent(content)
Configura el contenido de este HtmlOutput
.
var output = HtmlService.createHtmlOutput(); output.setContent('<b>Hello, world!</b>');
Parámetros
Nombre | Tipo | Descripción |
---|---|---|
content | String | El contenido que se publicará. |
Volver
HtmlOutput
: Este resultado, para encadenar.
Arroja
Error
: Si el HTML tiene un formato incorrecto
setFaviconUrl(iconUrl)
Agrega a la página una etiqueta de vínculo para un ícono de página. Se ignoran las etiquetas de vínculos de íconos incluidos 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
Nombre | Tipo | Descripción |
---|---|---|
iconUrl | String | Es la URL de la imagen del ícono de página, con la extensión de imagen que indica el tipo de imagen. |
Volver
HtmlOutput
: Este resultado, para encadenar.
setHeight(height)
Establece 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 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
Nombre | Tipo | Descripción |
---|---|---|
height | Integer | La nueva altura en píxeles; null da como resultado un valor predeterminado. |
Volver
HtmlOutput
: Este resultado, para encadenar.
setSandboxMode(mode)
Este método ahora no tiene efecto; antes configuraba el sandbox
mode
que se usa para las secuencias de comandos del cliente. Para evitar que los usuarios reciban código malicioso o JavaScript, el código del cliente entregado 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 elegir secuencias de comandos 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, consulte la guía de restricciones en el servicio HTML.
El modo IFRAME
impone muchas menos restricciones que los otros modos de la zona de pruebas y se ejecuta más rápido, pero no funciona en algunos navegadores anteriores, incluido Internet Explorer 9. El modo de zona de pruebas se puede leer en una secuencia de comandos del lado del cliente si inspeccionas 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
Nombre | Tipo | Descripción |
---|---|---|
mode | SandboxMode | El modo de zona de pruebas que se usará. |
Volver
HtmlOutput
: Este resultado, para encadenar.
setTitle(title)
Establece el título de la página de salida. En el caso de las apps web, este es el título de toda la página, mientras que, para HtmlOutput
, se muestra en las hojas de cálculo de Google.
var output = HtmlService.createHtmlOutput('<b>Hello, world!</b>'); output.setTitle('My First Page');
Parámetros
Nombre | Tipo | Descripción |
---|---|---|
title | String | El nuevo título |
Volver
HtmlOutput
: Este resultado, para encadenar.
setWidth(width)
Establece el ancho inicial de un 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 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
Nombre | Tipo | Descripción |
---|---|---|
width | Integer | El ancho nuevo en píxeles; null da como resultado un valor predeterminado. |
Volver
HtmlOutput
: Este resultado, para encadenar.
setXFrameOptionsMode(mode)
Establece el estado del encabezado X-Frame-Options
de la página, que controla la prevención del clickjacking.
La configuración de XFrameOptionsMode.ALLOWALL
permite que cualquier sitio iframe 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
Nombre | Tipo | Descripción |
---|---|---|
mode | XFrameOptionsMode | El modo de opciones XFrame para establecer. |
Volver
HtmlOutput
: Este resultado, para encadenar.