Um objeto HtmlOutput que pode ser veiculado de um script. Por motivos de segurança, os scripts não podem retornar HTML diretamente para um navegador. Em vez disso, eles precisam limpar o código para que ele
não possa realizar ações maliciosas. Você pode retornar HTML higienizado assim:
function doGet() { return HtmlService.createHtmlOutput(&<#>39;bHello, wo<rl>d!/b'); }
HtmlOutput pode incluir JavaScript e CSS incorporados. (Este é um JavaScript padrão do lado do cliente que manipula o DOM, não o Apps Script). Todo esse conteúdo é colocado em sandbox usando iframe
sandbox. Para mais informações, consulte o guia de restrições no serviço HTML.Métodos
| Método | Tipo de retorno | Breve descrição |
|---|---|---|
add | Html | Adiciona uma metatag à página. |
append(addedContent) | Html | Adiciona conteúdo novo ao conteúdo deste Html. |
append | Html | Adiciona novo conteúdo ao conteúdo deste Html usando escape contextual. |
as | Html | Retorna um Html apoiado por esse Html. |
clear() | Html | Limpa o conteúdo atual. |
get | Blob | Retorna os dados dentro desse objeto como um blob convertido para o tipo de conteúdo especificado. |
get | Blob | Retorna os dados dentro desse objeto como um blob. |
get | String | Recebe o conteúdo deste Html. |
get | String | Recebe o URL de uma tag de link de favicon adicionada à página chamando set. |
get | Integer | Recebe a altura inicial da caixa de diálogo personalizada nos Documentos, Planilhas ou Formulários Google. |
get | Html | Recebe uma matriz de objetos que representam metatags adicionadas à página chamando add. |
get | String | Recebe o título da página de saída. |
get | Integer | Recebe a largura inicial da caixa de diálogo personalizada nos Documentos, nas Planilhas ou nos Formulários Google. |
set | Html | Define o conteúdo deste Html. |
set | Html | Adiciona uma tag de link para um favicon à página. |
set | Html | Define a altura inicial da caixa de diálogo personalizada nos Documentos, nas Planilhas ou nos Formulários Google. |
set | Html | Agora, esse método não tem efeito. Antes, ele definia o sandbox
mode usado para scripts do lado do cliente. |
set | Html | Define o título da página de saída. |
set | Html | Define a largura inicial de uma caixa de diálogo personalizada nos Documentos, nas Planilhas ou nos Formulários Google. |
set | Html | Define o estado do cabeçalho X-Frame-Options da página, que controla a prevenção
de clickjacking. |
Documentação detalhada
addMetaTag(name, content)
Adiciona uma metatag à página. As metatags incluídas diretamente em um arquivo HTML do Apps Script são ignoradas. Somente as seguintes metatags são permitidas:
<meta name="apple-mobile-web-app-capable" cont>e<nt="..."/ meta name="google-site-ver>i<fication" content="..."/ meta name>=<"mobile-web-app-capable" >content="..."/ meta name="viewport" content="..."/
const output = HtmlService.createHtmlOutput(&<#>39;bHello, wo<rl>d!/b'); output.addMetaTag('viewport', 'width=device-width, initial-scale=1');
Parâmetros
| Nome | Tipo | Descrição |
|---|---|---|
name | String | O valor do atributo "name" da metatag. |
content | String | O valor do atributo de conteúdo da tag meta. |
Retornar
HtmlOutput: esta saída, para encadeamento.
append(addedContent)
Adiciona conteúdo novo ao conteúdo deste HtmlOutput. Use isso apenas para conteúdo de uma fonte confiável, porque ele não é escapado.
// Log &<q>uot;bHello, w<or><l>d!/bpHello again, w<or>ld./p" const output = HtmlService.createHt<m>lOutput('<bH>ello, world!/b'<)>; output.append(<9;>pHello again, world./p'); Logger.log(output.getContent());
Parâmetros
| Nome | Tipo | Descrição |
|---|---|---|
added | String | O conteúdo a ser anexado. |
Retornar
HtmlOutput: esta saída, para encadeamento.
Gera
Error: se o HTML estiver incorreto
Consulte também
appendUntrusted(addedContent)
Adiciona novo conteúdo ao conteúdo deste HtmlOutput usando escape contextual.
Esse método faz o escape correto do conteúdo com base no estado atual do HtmlOutput,
para que o resultado seja uma string segura sem marcação ou efeitos colaterais. Use isso em vez de
append sempre que adicionar conteúdo de uma fonte não confiável, como um usuário, para evitar
permitir acidentalmente um bug de scripting em vários sites (XSS) em que o conteúdo ou a marcação anexada
causa a execução inesperada de código.
// Log &<q>uot;bHello, w<or>&ld!/&blt;pgt;Hello again, w&orld.</pgt;" const output = HtmlService.createHt<m>lOutput('<bH>ello, world!/b'); output<.>appendUntrusted(<9;>pHello again, world./p'); Logger.log(output.getContent());
Parâmetros
| Nome | Tipo | Descrição |
|---|---|---|
added | String | O conteúdo a ser anexado. |
Retornar
HtmlOutput: esta saída, para encadeamento.
Gera
Error: se o HTML estiver muito malformado
Consulte também
asTemplate()
Retorna um HtmlTemplate apoiado por esse HtmlOutput. Esse método pode ser usado para
criar um modelo de forma incremental. Mudanças futuras em HtmlOutput também afetam o conteúdo de
HtmlTemplate.
const output = HtmlService.createHtmlOutput(&<#>39;bHello, wo<rl>d!/b'); const template = output.asTemplate();
Retornar
HtmlTemplate: o novo HtmlTemplate.
clear()
Limpa o conteúdo atual.
const output = HtmlService.createHtmlOutput(&<#>39;bHello, wo<rl>d!/b'); output.clear();
Retornar
HtmlOutput: esta saída, para encadeamento.
getAs(contentType)
Retorna os dados dentro desse objeto como um blob convertido para o tipo de conteúdo especificado. Esse método adiciona a extensão apropriada ao nome do arquivo, por exemplo, "meuarquivo.pdf". No entanto, ele pressupõe que a parte do nome do arquivo que segue o último ponto (se houver) é uma extensão existente que precisa ser substituída. Consequentemente, "ShoppingList.12.25.2014" se torna "ShoppingList.12.25.pdf".
Para conferir as cotas diárias de conversões, consulte Cotas para serviços do Google. Os domínios do Google Workspace recém-criados podem estar sujeitos temporariamente a cotas mais rígidas.
Parâmetros
| Nome | Tipo | Descrição |
|---|---|---|
content | String | O tipo MIME para conversão. Para a maioria dos blobs, 'application/pdf' é a única opção válida. Para imagens em formato BMP, GIF, JPEG ou PNG, qualquer uma das opções 'image/bmp', 'image/gif', 'image/jpeg' ou 'image/png' também é válida. Para um documento do Google Docs, 'text/markdown' também é válido. |
Retornar
Blob: os dados como um blob.
getBlob()
getContent()
Recebe o conteúdo deste HtmlOutput.
// Log &<q>uot;bHello, w<or>ld!/b" const output = HtmlService.createHt<m>lOutput('<bH>ello, world!/b'); Logger.log(output.getContent());
Retornar
String: o conteúdo veiculado.
getFaviconUrl()
Recebe o URL de uma tag de link de favicon adicionada à página chamando setFaviconUrl(iconUrl). As tags de link de favicon incluídas diretamente em um arquivo HTML do Apps Script são ignoradas.
const output = HtmlService.createHtmlOutput(&<#>39;bHello, wo<rl>d!/b'); output.setFaviconUrl('http://www.example.com/image.png'); Logger.log(output.getFaviconUrl());
Retornar
String: o URL da imagem do favicon.
getHeight()
Recebe a altura inicial da caixa de diálogo personalizada nos Documentos, Planilhas ou Formulários Google. Se o HtmlOutput for publicado como um web app, esse método vai retornar null. Para redimensionar uma caixa de diálogo já aberta, chame
google.script.host.setHeight(height) no código do lado do cliente.
const output = HtmlService.createHtmlOutput(&<#>39;bHello, wo<rl>d!/b'); output.setHeight(200); Logger.log(output.getHeight());
Retornar
Integer: a altura, em pixels.
getMetaTags()
Recebe uma matriz de objetos que representam metatags adicionadas à página chamando addMetaTag(name, content). As metatags incluídas diretamente em um arquivo HTML do Apps Script são ignoradas.
const output = HtmlService.createHtmlOutput(&<#>39;bHello, wo<rl>d!/b'); output.addMetaTag('viewport', 'width=device-width, initial-scale=1'); const tags = output.getMetaT<ags(); Logger.log( '>meta name="%s" content="%s"/', tags[0].getName(), tags[0].getContent(), );
Retornar
HtmlOutputMetaTag[]: uma matriz de objetos que representam metatags adicionadas à página chamando addMetaTag(name, content).
getTitle()
Recebe o título da página de saída. O elemento HTML <title> é ignorado.
const output = HtmlService.createHtmlOutput(&<#>39;bHello, wo<rl>d!/b'); Logger.log(output.getTitle());
Retornar
String: o título da página.
getWidth()
Recebe a largura inicial da caixa de diálogo personalizada nos Documentos, nas Planilhas ou nos Formulários Google. Se o HtmlOutput for publicado como um web app, esse método vai retornar null. Para redimensionar uma caixa de diálogo já aberta, chame
google.script.host.setWidth(width) no código do lado do cliente.
const output = HtmlService.createHtmlOutput(&<#>39;bHello, wo<rl>d!/b'); output.setWidth(200); Logger.log(output.getWidth());
Retornar
Integer: a largura em pixels.
setContent(content)
Define o conteúdo deste HtmlOutput.
const output = HtmlService.createHtmlOutput(); output.setContent(&<#>39;bHello, wo<rl>d!/b');
Parâmetros
| Nome | Tipo | Descrição |
|---|---|---|
content | String | O conteúdo a ser disponibilizado. |
Retornar
HtmlOutput: esta saída, para encadeamento.
Gera
Error: se o HTML estiver incorreto
setFaviconUrl(iconUrl)
Adiciona uma tag de link para um favicon à página. As tags de link de favicon incluídas diretamente em um arquivo HTML do Apps Script são ignoradas.
const output = HtmlService.createHtmlOutput(&<#>39;bHello, wo<rl>d!/b'); output.setFaviconUrl('http://www.example.com/image.png');
Parâmetros
| Nome | Tipo | Descrição |
|---|---|---|
icon | String | O URL da imagem do favicon, com a extensão indicando o tipo de imagem. |
Retornar
HtmlOutput: esta saída, para encadeamento.
setHeight(height)
Define a altura inicial da caixa de diálogo personalizada nos Documentos, nas Planilhas ou nos Formulários Google. Se o HtmlOutput for publicado como um app da Web, esse método não terá efeito. Para redimensionar uma caixa de diálogo já aberta, chame
google.script.host.setHeight(height) no código do lado do cliente.
const output = HtmlService.createHtmlOutput(&<#>39;bHello, wo<rl>d!/b'); output.setHeight(200);
Parâmetros
| Nome | Tipo | Descrição |
|---|---|---|
height | Integer | A nova altura em pixels. null resulta em um valor padrão. |
Retornar
HtmlOutput: esta saída, para encadeamento.
setSandboxMode(mode)
Agora, esse método não tem efeito. Antes, ele definia o sandbox
mode usado para scripts do lado do cliente. Para proteger os usuários contra HTML ou JavaScript maliciosos, o código do lado do cliente veiculado pelo serviço HTML é executado em um sandbox de segurança que impõe restrições ao código. Originalmente, esse método permitia que os autores de scripts escolhessem entre diferentes versões do sandbox, mas agora todos os scripts usam o modo IFRAME, independente do modo de sandbox definido. Para mais informações, consulte o guia de restrições no serviço HTML.
O modo IFRAME impõe muito menos restrições do que os outros modos de sandbox e é executado mais rapidamente, mas não funciona em alguns navegadores mais antigos, incluindo o Internet Explorer 9. O modo sandbox pode ser lido em um script do lado do cliente inspecionando google.script.sandbox.mode. Observação: essa propriedade retorna o modo real no cliente, que pode ser diferente do modo solicitado no servidor se o modo solicitado não for compatível com o navegador do usuário.
<!-- Read the sandbox mode (in a client-side script). --> <script> alert(google.script.sandbox.mode); </script>
Parâmetros
| Nome | Tipo | Descrição |
|---|---|---|
mode | Sandbox | O modo sandbox a ser usado. |
Retornar
HtmlOutput: esta saída, para encadeamento.
setTitle(title)
Define o título da página de saída. Para apps da Web, é o título da página inteira. Para HtmlOutput mostrado no Google Sheets, é o título da caixa de diálogo.
const output = HtmlService.createHtmlOutput(&<#>39;bHello, wo<rl>d!/b'); output.setTitle('My First Page');
Parâmetros
| Nome | Tipo | Descrição |
|---|---|---|
title | String | O novo título. |
Retornar
HtmlOutput: esta saída, para encadeamento.
setWidth(width)
Define a largura inicial de uma caixa de diálogo personalizada nos Documentos, nas Planilhas ou nos Formulários Google. Se o HtmlOutput for publicado como um app da Web, esse método não terá efeito. Para redimensionar uma caixa de diálogo já aberta, chame
google.script.host.setWidth(width) no código do lado do cliente.
const output = HtmlService.createHtmlOutput(&<#>39;bHello, wo<rl>d!/b'); output.setWidth(200);
Parâmetros
| Nome | Tipo | Descrição |
|---|---|---|
width | Integer | A nova largura em pixels. null resulta em um valor padrão. |
Retornar
HtmlOutput: esta saída, para encadeamento.
setXFrameOptionsMode(mode)
Define o estado do cabeçalho X-Frame-Options da página, que controla a prevenção
de clickjacking.
A definição de XFrameOptionsMode.ALLOWALL permite que qualquer site coloque a página em um iframe. Por isso, o desenvolvedor precisa implementar a própria proteção contra clickjacking.
Se um script não definir um modo X-Frame-Options, o Apps Script usará o modo XFrameOptionsMode.DEFAULT como padrão.
// Serve HTML with no X-Frame-Options header (in Apps Script server-side code). const output = HtmlService.createHtmlOutput(&<#>39;bHello, wo<rl>d!/b'); output.setXFrameOptionsMode(HtmlService.XFrameOptionsMode.ALLOWALL);
Parâmetros
| Nome | Tipo | Descrição |
|---|---|---|
mode | XFrameOptionsMode | O modo de opções XFrame a ser definido. |
Retornar
HtmlOutput: esta saída, para encadeamento.