Um objeto HtmlOutput
que pode ser exibido a partir de um script. Devido a considerações de segurança, os scripts não podem retornar diretamente o HTML a um navegador. Em vez disso, elas precisam limpá-la para que
não execute ações maliciosas. Você pode retornar um HTML higienizado da seguinte forma:
function doGet() { return HtmlService.createHtmlOutput('<b>Hello, world!</b>'); }O código no
HtmlOutput
pode incluir JavaScript e CSS incorporados. Esse é 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 mais informações, consulte o guia sobre 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 novo conteúdo ao conteúdo desta HtmlOutput . |
appendUntrusted(addedContent) | HtmlOutput | Adiciona novo conteúdo ao conteúdo desta HtmlOutput , usando código de escape. |
asTemplate() | HtmlTemplate | Retorna uma HtmlTemplate apoiada por este HtmlOutput . |
clear() | HtmlOutput | Limpa o conteúdo atual. |
getAs(contentType) | Blob | Retorna 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 | Acessa o URL de uma tag de link favicon adicionada à página chamando setFaviconUrl(iconUrl) . |
getHeight() | Integer | Recebe 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 | Acessa 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 desta 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 define 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 app 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
cliques. |
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 de nome da metatag. |
content | String | O valor do atributo de conteúdo da metatag. |
Retornar
HtmlOutput
: esta saída, para encadeamento.
append(addedContent)
Anexa novo conteúdo ao conteúdo desta HtmlOutput
. Use essa opção apenas para conteúdo de uma
fonte confiável, porque ela 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. |
Retornar
HtmlOutput
: esta saída, para encadeamento.
Gera
Error
: se o HTML estiver incorreto
Veja também
appendUntrusted(addedContent)
Adiciona novo conteúdo ao conteúdo desta HtmlOutput
, usando código de escape.
Esse método escapa corretamente o conteúdo com base no estado atual do HtmlOutput
,
para que o resultado seja uma string segura sem marcação ou efeito colateral. 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 permitir um bug de scripting em vários locais (XSS) em que o conteúdo ou a marcação que você anexa
causa execução de código inesperada.
// 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. |
Retornar
HtmlOutput
: esta saída, para encadeamento.
Gera
Error
: se o HTML estiver muito incorreto.
Veja também
asTemplate()
Retorna uma HtmlTemplate
apoiada por este HtmlOutput
. Esse método pode ser usado para criar um modelo de maneira incremental. Mudanças futuras no HtmlOutput
também afetam o conteúdo do
HtmlTemplate
.
var output = HtmlService.createHtmlOutput('<b>Hello, world!</b>'); var template = output.asTemplate();
Retornar
HtmlTemplate
: o novo HtmlTemplate
.
clear()
Limpa o conteúdo atual.
var output = HtmlService.createHtmlOutput('<b>Hello, world!</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, "myfile.pdf". No entanto, supõe que a parte do nome do arquivo que segue o último período (se houver) é uma extensão existente 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 do Google Services. Os domínios do Google Workspace recém-criados podem estar temporariamente sujeitos a cotas mais rígidas.
Parâmetros
Nome | Tipo | Descrição |
---|---|---|
contentType | String | O tipo MIME para o qual será feita a conversão. Para a maioria dos blobs, 'application/pdf' é
a única opção válida. Para imagens nos formatos BMP, GIF, JPEG ou PNG, qualquer um dos 'image/bmp' , 'image/gif' , 'image/jpeg' ou 'image/png' também é válido. |
Retornar
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());
Retornar
String
: o conteúdo exibido.
getFaviconUrl()
Acessa o URL de uma tag de link 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.
var output = HtmlService.createHtmlOutput('<b>Hello, world!</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 no Documentos, Planilhas ou Formulários Google. Se a HtmlOutput
for publicada 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());
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.
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());
Retornar
HtmlOutputMetaTag[]
: uma matriz de objetos que representam metatags adicionadas à página chamando addMetaTag(name, content)
.
getTitle()
Acessa 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());
Retornar
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 a HtmlOutput
for publicada 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());
Retornar
Integer
: a largura em pixels.
setContent(content)
Define o conteúdo desta 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. |
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.
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 de favicon, e a extensão de imagem indica o tipo de imagem. |
Retornar
HtmlOutput
: esta saída, para encadeamento.
setHeight(height)
Define a altura inicial da caixa de diálogo personalizada no Documentos, Planilhas ou Formulários Google. Se a HtmlOutput
for publicada 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. |
Retornar
HtmlOutput
: esta saída, para encadeamento.
setSandboxMode(mode)
Esse método agora não tem efeito. Antes, ele define 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 exibido por um 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 do script escolhessem
entre diferentes versões do sandbox, mas agora todos os scripts agora usam o modo IFRAME
,
independentemente do modo de sandbox definido. Para mais informações, consulte o guia sobre restrições no serviço HTML.
O modo IFRAME
impõe muito menos restrições 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 de 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
no 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 de 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, ele é o título de toda a página. Já
HtmlOutput
no Planilhas Google é 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. |
Retornar
HtmlOutput
: esta saída, para encadeamento.
setWidth(width)
Define a largura inicial de uma caixa de diálogo personalizada no app Documentos, Planilhas ou Formulários Google. Se a HtmlOutput
for publicada 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. |
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 contra
cliques.
Ao definir XFrameOptionsMode.ALLOWALL
, qualquer site recebe um iframe da página. 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). var output = HtmlService.createHtmlOutput('<b>Hello, world!</b>'); output.setXFrameOptionsMode(HtmlService.XFrameOptionsMode.ALLOWALL);
Parâmetros
Nome | Tipo | Descrição |
---|---|---|
mode | XFrameOptionsMode | Modo de opções do XFrame a ser definido. |
Retornar
HtmlOutput
: esta saída, para encadeamento.