Class HtmlOutput

HtmlOutput

Um objeto HtmlOutput que pode ser disponibilizado a partir de um script. Por questões de segurança, os scripts não podem retornar HTML diretamente a um navegador. Em vez disso, é necessário limpá-lo para que ele não possa executar ações maliciosas. Você pode retornar HTML limpo como este:

function doGet() {
  return HtmlService.createHtmlOutput('<b>Hello, world!</b>');
}
O código em HtmlOutput pode incluir JavaScript e CSS incorporados. Este é o JavaScript padrão do lado do cliente que manipula o DOM, não o Apps Script. Todo esse conteúdo é colocado no sandbox usando o sandbox do iframe. Para obter mais informações, consulte o guia para restrições no serviço HTML.

Métodos

MétodoTipo de retornoBreve descrição
addMetaTag(name, content)HtmlOutputAdiciona uma metatag à página.
append(addedContent)HtmlOutputAnexa novos conteúdos ao conteúdo deste HtmlOutput.
appendUntrusted(addedContent)HtmlOutputAnexa novo conteúdo ao conteúdo desse HtmlOutput, usando escape contextual.
asTemplate()HtmlTemplateRetorna um HtmlTemplate apoiado por esse HtmlOutput.
clear()HtmlOutputLimpa o conteúdo atual.
getAs(contentType)BlobRetorne os dados dentro desse objeto como um blob convertido para o tipo de conteúdo especificado.
getBlob()BlobRetorne os dados dentro desse objeto como um blob.
getContent()StringRecebe o conteúdo desse HtmlOutput.
getFaviconUrl()StringRecebe o URL de uma tag de link favicon adicionada à página chamando setFaviconUrl(iconUrl).
getHeight()IntegerExtrai a altura inicial da caixa de diálogo personalizada no Documentos, Planilhas ou Formulários Google.
getMetaTags()HtmlOutputMetaTag[]Recebe uma matriz de objetos que representam metatags adicionadas à página chamando addMetaTag(name, content).
getTitle()StringRecebe o título da página de saída.
getWidth()IntegerRecebe a largura inicial da caixa de diálogo personalizada no Documentos, Planilhas ou Formulários Google.
setContent(content)HtmlOutputDefine o conteúdo desse HtmlOutput.
setFaviconUrl(iconUrl)HtmlOutputAdiciona uma tag de link para um favicon à página.
setHeight(height)HtmlOutputDefine a altura inicial da caixa de diálogo personalizada no Documentos, Planilhas ou Formulários Google.
setSandboxMode(mode)HtmlOutputEsse método agora não tem efeito. Antes, ele definia o sandbox mode usado para scripts do lado do cliente
setTitle(title)HtmlOutputDefine o título da página de saída.
setWidth(width)HtmlOutputDefine a largura inicial de uma caixa de diálogo personalizada no Documentos, Planilhas ou Formulários Google.
setXFrameOptionsMode(mode)HtmlOutputDefine o estado do cabeçalho X-Frame-Options da página, que controla a prevenção contra 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" 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

NomeTipoDescrição
nameStringO valor do atributo name da metatag.
contentStringO valor do atributo content da metatag.

Retorno

HtmlOutput: saída para encadeamento.


append(addedContent)

Anexa novos conteúdos ao conteúdo deste HtmlOutput. Use isso apenas para conteúdo de uma fonte confiável, porque ele não tem 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

NomeTipoDescrição
addedContentStringO conteúdo a ser anexado.

Retorno

HtmlOutput: saída para encadeamento.

Gera

Error: se o HTML estiver incorreto.

Veja também


appendUntrusted(addedContent)

Anexa novo conteúdo ao conteúdo desse HtmlOutput, usando escape contextual.

Esse método escapa corretamente do conteúdo com base no estado atual da HtmlOutput, para que o resultado seja uma string segura sem marcações ou efeitos colaterais. Use essa opção em vez de anexar sempre que adicionar conteúdo de uma fonte não confiável, como de um usuário, para evitar acidentalmente um bug de scripting em vários sites (XSS) em que o conteúdo ou a marcação que você anexa causa uma execução inesperada do 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

NomeTipoDescrição
addedContentStringO conteúdo a ser anexado.

Retorno

HtmlOutput: saída para encadeamento.

Gera

Error: se o HTML estiver muito malformado.

Veja também


asTemplate()

Retorna um HtmlTemplate apoiado por esse HtmlOutput. Esse método pode ser usado para criar um modelo de forma incremental. Futuras mudanças em HtmlOutput também vão afetar o conteúdo de HtmlTemplate.

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

Retorno

HtmlTemplate: o novo HtmlTemplate.


clear()

Limpa o conteúdo atual.

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

Retorno

HtmlOutput: saída para encadeamento.


getAs(contentType)

Retorne 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, ela pressupõe que a parte do nome do arquivo que segue o último ponto (se houver) é uma extensão que precisa ser substituída. Consequentemente, "ShoppingList.12.25.2014" se torna "ShoppingList.12.25.pdf".

Para ver 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 temporariamente sujeitos a cotas mais rigorosas.

Parâmetros

NomeTipoDescrição
contentTypeStringO tipo MIME para conversão. Para a maioria dos blobs, 'application/pdf' é a única opção válida. Para imagens no formato BMP, GIF, JPEG ou PNG, qualquer elemento 'image/bmp', 'image/gif', 'image/jpeg' ou 'image/png' também é válido.

Retorno

Blob: os dados como um blob.


getBlob()

Retorne os dados dentro desse objeto como um blob.

Retorno

Blob: os dados como um blob.


getContent()

Recebe o conteúdo desse HtmlOutput.

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

Retorno

String: o conteúdo que é veiculado.


getFaviconUrl()

Recebe o URL de uma tag de link favicon adicionada à página chamando setFaviconUrl(iconUrl). As tags de link do favicon incluídas diretamente em um arquivo HTML do Apps Script são ignoradas.

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

Retorno

String: o URL da imagem do favicon.


getHeight()

Extrai a altura inicial da caixa de diálogo personalizada no Documentos, Planilhas ou Formulários Google. Se o HtmlOutput for publicado como um app da Web, esse método retornará null. Para redimensionar uma caixa de diálogo que já está aberta, chame google.script.host.setHeight(height) no código do lado do cliente.

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

Retorno

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.

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());

Retorno

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.

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

Retorno

String: o título da página.


getWidth()

Recebe a largura inicial da caixa de diálogo personalizada no Documentos, Planilhas ou Formulários Google. Se o HtmlOutput for publicado como um app da Web, esse método retornará null. Para redimensionar uma caixa de diálogo que já está aberta, chame google.script.host.setWidth(width) no código do lado do cliente.

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

Retorno

Integer — largura em pixels.


setContent(content)

Define o conteúdo desse HtmlOutput.

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

Parâmetros

NomeTipoDescrição
contentStringO conteúdo a ser veiculado.

Retorno

HtmlOutput: 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 favicon incluídas diretamente em um arquivo HTML do Apps Script são ignoradas.

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

Parâmetros

NomeTipoDescrição
iconUrlStringO URL da imagem favicon, com a extensão de imagem indicando o tipo da imagem.

Retorno

HtmlOutput: saída para encadeamento.


setHeight(height)

Define a altura inicial da caixa de diálogo personalizada no Documentos, Planilhas ou 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 que já está aberta, chame google.script.host.setHeight(height) no código do lado do cliente.

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

Parâmetros

NomeTipoDescrição
heightIntegerA nova altura em pixels. null resulta em um valor padrão.

Retorno

HtmlOutput: saída para encadeamento.


setSandboxMode(mode)

Esse método agora não tem efeito. Antes, ele definia o sandbox mode usado para scripts do lado do cliente Para proteger os usuários contra a veiculação de HTML ou JavaScript malicioso, o código do lado do cliente disponibilizado 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 obter mais informações, consulte o guia para 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, como o Internet Explorer 9. O modo sandbox pode ser lido em um script do lado do cliente inspecionando google.script.sandbox.mode. 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

NomeTipoDescrição
modeSandboxModeO modo sandbox a ser usado.

Retorno

HtmlOutput: saída para encadeamento.


setTitle(title)

Define o título da página de saída. Para apps da Web, esse é o título de toda a página, enquanto para HtmlOutput mostrado nas Planilhas Google, esse é o título da caixa de diálogo.

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

Parâmetros

NomeTipoDescrição
titleStringO novo título.

Retorno

HtmlOutput: saída para encadeamento.


setWidth(width)

Define a largura inicial de uma caixa de diálogo personalizada no Documentos, Planilhas ou 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 que já está aberta, chame google.script.host.setWidth(width) no código do lado do cliente.

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

Parâmetros

NomeTipoDescrição
widthIntegerA nova largura em pixels. null resulta em um valor padrão.

Retorno

HtmlOutput: saída para encadeamento.


setXFrameOptionsMode(mode)

Define o estado do cabeçalho X-Frame-Options da página, que controla a prevenção contra clickjacking.

Definir XFrameOptionsMode.ALLOWALL permite que qualquer site use um iframe da página. Assim, o desenvolvedor precisará implementar a própria proteção contra clickjacking.

Se um script não definir um modo X-Frame-Options, o Apps Script vai usar o modo XFrameOptionsMode.DEFAULT como padrão.

// 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

NomeTipoDescrição
modeXFrameOptionsModeO modo de opções do XFrame a ser definido.

Retorno

HtmlOutput: saída para encadeamento.