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étodo | Tipo de retorno | Breve descrição |
---|---|---|
addMetaTag(name, content) | HtmlOutput | Adiciona uma metatag à página. |
append(addedContent) | HtmlOutput | Anexa novos conteúdos ao conteúdo deste HtmlOutput . |
appendUntrusted(addedContent) | HtmlOutput | Anexa novo conteúdo ao conteúdo desse HtmlOutput , usando escape contextual. |
asTemplate() | HtmlTemplate | Retorna um HtmlTemplate apoiado por esse HtmlOutput . |
clear() | HtmlOutput | Limpa o conteúdo atual. |
getAs(contentType) | Blob | Retorne os dados dentro desse objeto como um blob convertido para o tipo de conteúdo especificado. |
getBlob() | Blob | Retorne os dados dentro desse objeto como um blob. |
getContent() | String | Recebe o conteúdo desse HtmlOutput . |
getFaviconUrl() | String | Recebe o URL de uma tag de link favicon adicionada à página chamando setFaviconUrl(iconUrl) . |
getHeight() | Integer | Extrai 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() | String | Recebe o título da página de saída. |
getWidth() | Integer | Recebe a largura inicial da caixa de diálogo personalizada no Documentos, Planilhas ou Formulários Google. |
setContent(content) | HtmlOutput | Define o conteúdo desse HtmlOutput . |
setFaviconUrl(iconUrl) | HtmlOutput | Adiciona uma tag de link para um favicon à página. |
setHeight(height) | HtmlOutput | Define a altura inicial da caixa de diálogo personalizada no Documentos, Planilhas ou Formulários Google. |
setSandboxMode(mode) | HtmlOutput | Esse método agora não tem efeito. Antes, ele definia o sandbox
mode usado para scripts do lado do cliente |
setTitle(title) | HtmlOutput | Define o título da página de saída. |
setWidth(width) | HtmlOutput | Define a largura inicial de uma caixa de diálogo personalizada no Documentos, Planilhas ou Formulários Google. |
setXFrameOptionsMode(mode) | HtmlOutput | Define 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
Nome | Tipo | Descrição |
---|---|---|
name | String | O valor do atributo name da metatag. |
content | String | O 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
Nome | Tipo | Descrição |
---|---|---|
addedContent | String | O 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><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
Nome | Tipo | Descrição |
---|---|---|
addedContent | String | O 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
Nome | Tipo | Descrição |
---|---|---|
contentType | String | O 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()
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
Nome | Tipo | Descrição |
---|---|---|
content | String | O 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
Nome | Tipo | Descrição |
---|---|---|
iconUrl | String | O 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
Nome | Tipo | Descrição |
---|---|---|
height | Integer | A 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
Nome | Tipo | Descrição |
---|---|---|
mode | SandboxMode | O 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
Nome | Tipo | Descrição |
---|---|---|
title | String | O 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
Nome | Tipo | Descrição |
---|---|---|
width | Integer | A 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
Nome | Tipo | Descrição |
---|---|---|
mode | XFrameOptionsMode | O modo de opções do XFrame a ser definido. |
Retorno
HtmlOutput
: saída para encadeamento.