Class HtmlOutput

HtmlOutput

Un oggetto HtmlOutput che può essere pubblicato da uno script. Per motivi di sicurezza, gli script non possono restituire direttamente HTML a un browser. Devono invece eseguire la saturazione in modo che non possa eseguire azioni dannose. Puoi restituire HTML destrutturato come questo:

function doGet() {
  return HtmlService.createHtmlOutput('<b>Hello, world!</b>');
}
Il codice in HtmlOutput può includere JavaScript e CSS incorporati. Si tratta di JavaScript lato client standard che manipola il DOM, non di Apps Script. Tutti questi contenuti vengono messi in sandbox utilizzando la sandboxing di iframe. Per ulteriori informazioni, consulta la guida alle limitazioni nel servizio HTML.

Metodi

MetodoTipo restituitoBreve descrizione
addMetaTag(name, content)HtmlOutputAggiunge un meta tag alla pagina.
append(addedContent)HtmlOutputAggiunge nuovi contenuti ai contenuti di questo HtmlOutput.
appendUntrusted(addedContent)HtmlOutputAggiunge nuovi contenuti ai contenuti di questo HtmlOutput, utilizzando l'escapismo contestuale.
asTemplate()HtmlTemplateRestituisce un HtmlTemplate supportato da questo HtmlOutput.
clear()HtmlOutputCancella i contenuti correnti.
getAs(contentType)BlobRestituisce i dati all'interno di questo oggetto come blob convertito nel tipo di contenuti specificato.
getBlob()BlobRestituisce i dati all'interno di questo oggetto come blob.
getContent()StringRecupera i contenuti di questo HtmlOutput.
getFaviconUrl()StringRecupera l'URL di un tag link favicon aggiunto alla pagina chiamando setFaviconUrl(iconUrl).
getHeight()IntegerRestituisce l'altezza iniziale della finestra di dialogo personalizzata in Documenti, Fogli o Forms Google.
getMetaTags()HtmlOutputMetaTag[]Restituisce un array di oggetti che rappresentano i meta tag aggiunti alla pagina chiamando addMetaTag(name, content).
getTitle()StringRecupera il titolo della pagina di output.
getWidth()IntegerRestituisce la larghezza iniziale della finestra di dialogo personalizzata in Documenti, Fogli o Moduli Google.
setContent(content)HtmlOutputImposta i contenuti di questo HtmlOutput.
setFaviconUrl(iconUrl)HtmlOutputAggiunge alla pagina un tag link per un favicon.
setHeight(height)HtmlOutputImposta l'altezza iniziale della finestra di dialogo personalizzata in Documenti, Fogli o Moduli Google.
setSandboxMode(mode)HtmlOutputQuesto metodo ora non ha alcun effetto. In precedenza impostava il sandbox mode utilizzato per gli script lato client.
setTitle(title)HtmlOutputImposta il titolo della pagina di output.
setWidth(width)HtmlOutputImposta la larghezza iniziale di una finestra di dialogo personalizzata in Documenti, Fogli o Forms Google.
setXFrameOptionsMode(mode)HtmlOutputImposta lo stato dell'intestazione X-Frame-Options della pagina, che controlla la prevenzione del clickjacking.

Documentazione dettagliata

addMetaTag(name, content)

Aggiunge un meta tag alla pagina. I meta tag inclusi direttamente in un file HTML di Apps Script vengono ignorati. Sono consentiti solo i seguenti meta tag:

<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="..."/>
const output = HtmlService.createHtmlOutput('<b>Hello, world!</b>');
output.addMetaTag('viewport', 'width=device-width, initial-scale=1');

Parametri

NomeTipoDescrizione
nameStringIl valore dell'attributo name del tag meta.
contentStringIl valore dell'attributo content del tag meta.

Invio

HtmlOutput: questo output, per l'accodamento.


append(addedContent)

Aggiunge nuovi contenuti ai contenuti di questo HtmlOutput. Utilizzalo solo per i contenuti di una fonte attendibile, perché non è codificato.

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

Parametri

NomeTipoDescrizione
addedContentStringI contenuti da aggiungere.

Invio

HtmlOutput: questo output, per l'accodamento.

Lanci

Error: se il codice HTML non è valido

Vedi anche


appendUntrusted(addedContent)

Aggiunge nuovi contenuti ai contenuti di questo HtmlOutput, utilizzando l'escapismo contestuale.

Questo metodo esegue correttamente la codifica dei contenuti in base allo stato corrente di HtmlOutput, in modo che il risultato sia una stringa sicura senza markup o effetti collaterali. Utilizzalo al posto di append ogni volta che aggiungi contenuti da una fonte non attendibile, ad esempio da un utente, per evitare di consentire accidentalmente un bug di cross-site scripting (XSS) in cui i contenuti o il markup aggiunti causano l'esecuzione di codice inaspettata.

// Log "<b>Hello, world!</b>&lt;p&gt;Hello again, world.&lt;/p&gt;"
const output = HtmlService.createHtmlOutput('<b>Hello, world!</b>');
output.appendUntrusted('<p>Hello again, world.</p>');
Logger.log(output.getContent());

Parametri

NomeTipoDescrizione
addedContentStringI contenuti da aggiungere.

Invio

HtmlOutput: questo output, per l'accodamento.

Lanci

Error: se il codice HTML è molto deformato

Vedi anche


asTemplate()

Restituisce un HtmlTemplate supportato da questo HtmlOutput. Questo metodo può essere utilizzato per costruire un modello in modo incrementale. Le modifiche future a HtmlOutput influiscono anche sui contenuti di HtmlTemplate.

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

Invio

HtmlTemplate: il nuovo HtmlTemplate.


clear()

Cancella i contenuti correnti.

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

Invio

HtmlOutput: questo output, per l'accodamento.


getAs(contentType)

Restituisce i dati all'interno di questo oggetto come blob convertito nel tipo di contenuti specificato. Questo metodo aggiunge l'estensione appropriata al nome file, ad esempio "myfile.pdf". Tuttavia, assume che la parte del nome file che segue l'ultimo punto (se presente) sia un'estensione esistente che deve essere sostituita. Di conseguenza, "ShoppingList.12.25.2014" diventa "ShoppingList.12.25.pdf".

Per visualizzare le quote giornaliere per le conversioni, consulta Quote per i servizi Google. I domini Google Workspace appena creati potrebbero essere temporaneamente soggetti a quote più severe.

Parametri

NomeTipoDescrizione
contentTypeStringIl tipo MIME a cui eseguire la conversione. Per la maggior parte dei blob, 'application/pdf' è l'unica opzione valida. Per le immagini in formato BMP, GIF, JPEG o PNG, sono validi anche 'image/bmp', 'image/gif', 'image/jpeg' o 'image/png'. Per un documento di Documenti Google, è valido anche 'text/markdown'.

Invio

Blob: i dati come blob.


getBlob()

Restituisce i dati all'interno di questo oggetto come blob.

Invio

Blob: i dati come blob.


getContent()

Recupera i contenuti di questo HtmlOutput.

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

Invio

String: i contenuti pubblicati.


getFaviconUrl()

Recupera l'URL di un tag link favicon aggiunto alla pagina chiamando setFaviconUrl(iconUrl). I tag link favicon inclusi direttamente in un file HTML di Apps Script vengono ignorati.

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

Invio

String: l'URL dell'immagine della favicon.


getHeight()

Restituisce l'altezza iniziale della finestra di dialogo personalizzata in Documenti, Fogli o Forms Google. Se HtmlOutput è pubblicato come app web, questo metodo restituisce null. Per ridimensionare una finestra di dialogo già aperta, chiama google.script.host.setHeight(height) nel codice lato client.

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

Invio

Integer: l'altezza in pixel.


getMetaTags()

Restituisce un array di oggetti che rappresentano i meta tag aggiunti alla pagina chiamando addMetaTag(name, content). I meta tag inclusi direttamente in un file HTML di Apps Script vengono ignorati.

const output = HtmlService.createHtmlOutput('<b>Hello, world!</b>');
output.addMetaTag('viewport', 'width=device-width, initial-scale=1');

const tags = output.getMetaTags();
Logger.log(
    '<meta name="%s" content="%s"/>',
    tags[0].getName(),
    tags[0].getContent(),
);

Invio

HtmlOutputMetaTag[]: un array di oggetti che rappresentano i meta tag aggiunti alla pagina chiamando addMetaTag(name, content).


getTitle()

Recupera il titolo della pagina di output. Tieni presente che l'elemento HTML <title> viene ignorato.

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

Invio

String: il titolo della pagina.


getWidth()

Restituisce la larghezza iniziale della finestra di dialogo personalizzata in Documenti, Fogli o Moduli Google. Se HtmlOutput è pubblicato come app web, questo metodo restituisce null. Per ridimensionare una finestra di dialogo già aperta, chiama google.script.host.setWidth(width) nel codice lato client.

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

Invio

Integer: la larghezza in pixel.


setContent(content)

Imposta i contenuti di questo HtmlOutput.

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

Parametri

NomeTipoDescrizione
contentStringI contenuti da pubblicare.

Invio

HtmlOutput: questo output, per l'accodamento.

Lanci

Error: se il codice HTML non è valido


setFaviconUrl(iconUrl)

Aggiunge alla pagina un tag link per un favicon. I tag link favicon inclusi direttamente in un file HTML di Apps Script vengono ignorati.

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

Parametri

NomeTipoDescrizione
iconUrlStringL'URL dell'immagine favicon, con l'estensione che indica il tipo di immagine.

Invio

HtmlOutput: questo output, per l'accodamento.


setHeight(height)

Imposta l'altezza iniziale della finestra di dialogo personalizzata in Documenti, Fogli o Moduli Google. Se HtmlOutput viene pubblicato come app web, questo metodo non ha alcun effetto. Per ridimensionare una finestra di dialogo già aperta, chiama google.script.host.setHeight(height) nel codice lato client.

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

Parametri

NomeTipoDescrizione
heightIntegerLa nuova altezza in pixel. null restituisce un valore predefinito.

Invio

HtmlOutput: questo output, per l'accodamento.


setSandboxMode(mode)

Questo metodo ora non ha alcun effetto. In precedenza impostava il sandbox mode utilizzato per gli script lato client. Per proteggere gli utenti dalla visualizzazione di codice HTML o JavaScript dannoso, il codice lato client pubblicato dal servizio HTML viene eseguito in una sandbox di sicurezza che impone limitazioni al codice. In origine, questo metodo consentiva agli autori di script di scegliere tra diverse versioni della sandbox, ma ora tutti gli script utilizzano la modalità IFRAME indipendentemente dalla modalità sandbox impostata. Per ulteriori informazioni, consulta la guida alle limitazioni nel servizio HTML.

La modalità IFRAME impone molte meno limitazioni rispetto alle altre modalità di sandbox e gira più velocemente, ma non funziona affatto in alcuni browser meno recenti, tra cui Internet Explorer 9. La modalità sandbox può essere letta in uno script lato client ispezionando google.script.sandbox.mode. Tieni presente che questa proprietà restituisce la modalità effettiva sul client, che può essere diversa dalla modalità richiesta sul server se quest'ultima non è supportata nel browser dell'utente.

<!-- Read the sandbox mode (in a client-side script). -->
<script>
  alert(google.script.sandbox.mode);
</script>

Parametri

NomeTipoDescrizione
modeSandboxModeLa modalità sandbox da utilizzare.

Invio

HtmlOutput: questo output, per l'accodamento.


setTitle(title)

Imposta il titolo della pagina di output. Per le app web, si tratta del titolo dell'intera pagina, mentre per HtmlOutput mostrato in Fogli Google, si tratta del titolo della finestra di dialogo.

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

Parametri

NomeTipoDescrizione
titleStringIl nuovo titolo.

Invio

HtmlOutput: questo output, per l'accodamento.


setWidth(width)

Imposta la larghezza iniziale di una finestra di dialogo personalizzata in Documenti, Fogli o Forms Google. Se HtmlOutput viene pubblicato come app web, questo metodo non ha alcun effetto. Per ridimensionare una finestra di dialogo già aperta, chiama google.script.host.setWidth(width) nel codice lato client.

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

Parametri

NomeTipoDescrizione
widthIntegerLa nuova larghezza in pixel. null restituisce un valore predefinito.

Invio

HtmlOutput: questo output, per l'accodamento.


setXFrameOptionsMode(mode)

Imposta lo stato dell'intestazione X-Frame-Options della pagina, che controlla la prevenzione del clickjacking.

L'impostazione XFrameOptionsMode.ALLOWALL consente a qualsiasi sito di inserire la pagina in un iframe, pertanto lo sviluppatore deve implementare la propria protezione contro il clickjacking.

Se uno script non imposta una modalità X-Frame-Options, Apps Script utilizza la modalità XFrameOptionsMode.DEFAULT come predefinita.

// Serve HTML with no X-Frame-Options header (in Apps Script server-side code).
const output = HtmlService.createHtmlOutput('<b>Hello, world!</b>');
output.setXFrameOptionsMode(HtmlService.XFrameOptionsMode.ALLOWALL);

Parametri

NomeTipoDescrizione
modeXFrameOptionsModeLa modalità delle opzioni XFrame da impostare.

Invio

HtmlOutput: questo output, per l'accodamento.