Class HtmlOutput

HtmlOutput

Objet HtmlOutput pouvant être diffusé à partir d'un script. Pour des raisons de sécurité, les scripts ne peuvent pas renvoyer directement le code HTML à un navigateur. Au lieu de cela, ils doivent le nettoyer afin qu'il ne puisse pas effectuer d'actions malveillantes. Vous pouvez renvoyer du code HTML nettoyé comme ceci:

function doGet() {
  return HtmlService.createHtmlOutput('<b>Hello, world!</b>');
}
Le code dans HtmlOutput peut inclure du code JavaScript et CSS intégré. Il s'agit d'un code JavaScript standard côté client qui manipule le DOM, et non Apps Script. L'ensemble de ce contenu est placé dans un bac à sable à l'aide du bac à sable iFrame. Pour en savoir plus, consultez le guide des restrictions applicables aux services HTML.

Méthodes

MéthodeType renvoyéBrève description
addMetaTag(name, content)HtmlOutputAjoute une balise Meta à la page.
append(addedContent)HtmlOutputAjoute le nouveau contenu au contenu de ce HtmlOutput.
appendUntrusted(addedContent)HtmlOutputAjoute du nouveau contenu au contenu de ce HtmlOutput à l'aide d'échappements contextuels.
asTemplate()HtmlTemplateRenvoie un HtmlTemplate sauvegardé par ce HtmlOutput.
clear()HtmlOutputEfface le contenu actuel.
getAs(contentType)BlobRenvoie les données contenues dans cet objet sous forme d'objet blob converti dans le type de contenu spécifié.
getBlob()BlobRenvoyez les données contenues dans cet objet sous forme d'objet blob.
getContent()StringRécupère le contenu de ce HtmlOutput.
getFaviconUrl()StringRécupère l'URL d'une balise de lien favicon ajoutée à la page en appelant setFaviconUrl(iconUrl).
getHeight()IntegerRécupère la hauteur initiale de la boîte de dialogue personnalisée dans Google Docs, Sheets ou Forms.
getMetaTags()HtmlOutputMetaTag[]Récupère un tableau d'objets représentant des balises Meta ajoutées à la page en appelant addMetaTag(name, content).
getTitle()StringRécupère le titre de la page de sortie.
getWidth()IntegerRécupère la largeur initiale de la boîte de dialogue personnalisée dans Google Docs, Sheets ou Forms.
setContent(content)HtmlOutputDéfinit le contenu de cet élément HtmlOutput.
setFaviconUrl(iconUrl)HtmlOutputAjoute à la page une balise de lien pour un favicon.
setHeight(height)HtmlOutputDéfinit la hauteur initiale de la boîte de dialogue personnalisée dans Google Docs, Sheets ou Forms.
setSandboxMode(mode)HtmlOutputCette méthode n'a plus aucun effet. Auparavant, elle définissait le sandbox mode utilisé pour les scripts côté client.
setTitle(title)HtmlOutputDéfinit le titre de la page de sortie.
setWidth(width)HtmlOutputDéfinit la largeur initiale d'une boîte de dialogue personnalisée dans Google Docs, Sheets ou Forms.
setXFrameOptionsMode(mode)HtmlOutputDéfinit l'état de l'en-tête X-Frame-Options de la page, qui contrôle le blocage du détournement de clic.

Documentation détaillée

addMetaTag(name, content)

Ajoute une balise Meta à la page. Les balises Meta incluses directement dans un fichier HTML Apps Script sont ignorées. Seules les balises Meta suivantes sont autorisées:

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

Paramètres

NomTypeDescription
nameStringValeur de l'attribut "name" de la balise Meta.
contentStringValeur de l'attribut de contenu de la balise Meta.

Renvois

HtmlOutput : sortie, pour le chaînage.


append(addedContent)

Ajoute le nouveau contenu au contenu de ce HtmlOutput. N'utilisez cet attribut que pour le contenu provenant d'une source de confiance, car il ne fait l'objet d'aucun échappement.

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

Paramètres

NomTypeDescription
addedContentStringContenu à ajouter.

Renvois

HtmlOutput : sortie, pour le chaînage.

Génère

Error : si le format du code HTML est incorrect

Voir aussi


appendUntrusted(addedContent)

Ajoute du nouveau contenu au contenu de ce HtmlOutput à l'aide d'échappements contextuels.

Cette méthode échappe correctement le contenu en fonction de l'état actuel de HtmlOutput, de sorte que le résultat soit une chaîne sûre sans balisage ni effet secondaire. Utilisez cette option au lieu d'utiliser "append" chaque fois que vous ajoutez du contenu provenant d'une source non fiable, comme un utilisateur, pour éviter d'autoriser accidentellement un bug de script intersites (XSS) dans lequel le contenu ou le balisage que vous ajoutez provoque l'exécution de code inattendue.

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

Paramètres

NomTypeDescription
addedContentStringContenu à ajouter.

Renvois

HtmlOutput : sortie, pour le chaînage.

Génère

Error : si le format du code HTML est très incorrect

Voir aussi


asTemplate()

Renvoie un HtmlTemplate sauvegardé par ce HtmlOutput. Cette méthode peut être utilisée pour créer un modèle de manière incrémentielle. Les futures modifications apportées à HtmlOutput affecteront également le contenu de HtmlTemplate.

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

Renvois

HtmlTemplate : nouveau HtmlTemplate.


clear()

Efface le contenu actuel.

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

Renvois

HtmlOutput : sortie, pour le chaînage.


getAs(contentType)

Renvoie les données contenues dans cet objet sous forme d'objet blob converti dans le type de contenu spécifié. Cette méthode ajoute l'extension appropriée au nom de fichier (par exemple, "myfile.pdf"). Cependant, nous supposons que la partie du nom de fichier qui suit le dernier point (le cas échéant) est une extension existante qui doit être remplacée. Par conséquent, "ShoppingList.12.25.2014" devient "ShoppingList.12.25.pdf".

Pour connaître les quotas quotidiens de conversions, consultez la page Quotas pour les services Google. Les domaines Google Workspace nouvellement créés peuvent être temporairement soumis à des quotas plus stricts.

Paramètres

NomTypeDescription
contentTypeStringType MIME vers lequel effectuer la conversion. Pour la plupart des blobs, 'application/pdf' est la seule option valide. Pour les images au format BMP, GIF, JPEG ou PNG, 'image/bmp', 'image/gif', 'image/jpeg' ou 'image/png' sont également valides.

Renvois

Blob : données sous forme de blob.


getBlob()

Renvoyez les données contenues dans cet objet sous forme d'objet blob.

Renvois

Blob : données sous forme de blob.


getContent()

Récupère le contenu de ce HtmlOutput.

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

Renvois

String : contenu diffusé.


getFaviconUrl()

Récupère l'URL d'une balise de lien favicon ajoutée à la page en appelant setFaviconUrl(iconUrl). Les balises de lien favicon incluses directement dans un fichier HTML Apps Script sont ignorées.

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

Renvois

String : URL de l'image du favicon.


getHeight()

Récupère la hauteur initiale de la boîte de dialogue personnalisée dans Google Docs, Sheets ou Forms. Si HtmlOutput est publié en tant qu'application Web, cette méthode renvoie null. Pour redimensionner une boîte de dialogue déjà ouverte, appelez google.script.host.setHeight(height) dans le code côté client.

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

Renvois

Integer : hauteur, en pixels.


getMetaTags()

Récupère un tableau d'objets représentant des balises Meta ajoutées à la page en appelant addMetaTag(name, content). Les balises Meta incluses directement dans un fichier HTML Apps Script sont ignorées.

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

Renvois

HtmlOutputMetaTag[] : tableau d'objets représentant des balises Meta ajoutées à la page en appelant addMetaTag(name, content).


getTitle()

Récupère le titre de la page de sortie. Notez que l'élément HTML <title> est ignoré.

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

Renvois

String : titre de la page.


getWidth()

Récupère la largeur initiale de la boîte de dialogue personnalisée dans Google Docs, Sheets ou Forms. Si HtmlOutput est publié en tant qu'application Web, cette méthode renvoie null. Pour redimensionner une boîte de dialogue déjà ouverte, appelez google.script.host.setWidth(width) dans le code côté client.

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

Renvois

Integer : largeur en pixels.


setContent(content)

Définit le contenu de cet élément HtmlOutput.

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

Paramètres

NomTypeDescription
contentStringContenu à diffuser.

Renvois

HtmlOutput : sortie, pour le chaînage.

Génère

Error : si le format du code HTML est incorrect


setFaviconUrl(iconUrl)

Ajoute à la page une balise de lien pour un favicon. Les balises de lien favicon incluses directement dans un fichier HTML Apps Script sont ignorées.

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

Paramètres

NomTypeDescription
iconUrlStringURL de l'image du favicon, avec l'extension indiquant le type d'image.

Renvois

HtmlOutput : sortie, pour le chaînage.


setHeight(height)

Définit la hauteur initiale de la boîte de dialogue personnalisée dans Google Docs, Sheets ou Forms. Si HtmlOutput est publié en tant qu'application Web, cette méthode n'a aucun effet. Pour redimensionner une boîte de dialogue déjà ouverte, appelez google.script.host.setHeight(height) dans le code côté client.

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

Paramètres

NomTypeDescription
heightIntegerNouvelle hauteur en pixels. null génère une valeur par défaut.

Renvois

HtmlOutput : sortie, pour le chaînage.


setSandboxMode(mode)

Cette méthode n'a plus aucun effet. Auparavant, elle définissait le sandbox mode utilisé pour les scripts côté client. Pour protéger les utilisateurs contre la diffusion de code HTML ou JavaScript malveillant, le code côté client diffusé par le service HTML s'exécute dans un bac à sable de sécurité qui impose des restrictions au code. À l'origine, cette méthode permettait aux auteurs de choisir entre différentes versions du bac à sable, mais tous les scripts utilisent désormais le mode IFRAME, quel que soit le mode de bac à sable défini. Pour en savoir plus, consultez le guide des restrictions applicables aux services HTML.

Le mode IFRAME impose beaucoup moins de restrictions que les autres modes de bac à sable et s'exécute plus rapidement, mais ne fonctionne pas du tout dans certains navigateurs plus anciens, y compris Internet Explorer 9. Le mode bac à sable peut être lu dans un script côté client en inspectant google.script.sandbox.mode. Notez que cette propriété renvoie le mode réel sur le client, qui peut différer du mode demandé sur le serveur si le mode demandé n'est pas pris en charge dans le navigateur de l'utilisateur.

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

Paramètres

NomTypeDescription
modeSandboxModeMode bac à sable à utiliser.

Renvois

HtmlOutput : sortie, pour le chaînage.


setTitle(title)

Définit le titre de la page de sortie. Pour les applications Web, il s'agit du titre de la page entière. Pour HtmlOutput affiché dans Google Sheets, il s'agit du titre de la boîte de dialogue.

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

Paramètres

NomTypeDescription
titleStringNouveau titre.

Renvois

HtmlOutput : sortie, pour le chaînage.


setWidth(width)

Définit la largeur initiale d'une boîte de dialogue personnalisée dans Google Docs, Sheets ou Forms. Si HtmlOutput est publié en tant qu'application Web, cette méthode n'a aucun effet. Pour redimensionner une boîte de dialogue déjà ouverte, appelez google.script.host.setWidth(width) dans le code côté client.

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

Paramètres

NomTypeDescription
widthIntegerNouvelle largeur en pixels. null génère une valeur par défaut.

Renvois

HtmlOutput : sortie, pour le chaînage.


setXFrameOptionsMode(mode)

Définit l'état de l'en-tête X-Frame-Options de la page, qui contrôle le blocage du détournement de clic.

Si vous définissez XFrameOptionsMode.ALLOWALL, tous les sites peuvent intégrer la page dans un cadre iFrame. Le développeur doit donc implémenter sa propre protection contre le détournement de clic.

Si un script ne définit pas de mode X-Frame-Options, Apps Script utilise le mode XFrameOptionsMode.DEFAULT par défaut.

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

Paramètres

NomTypeDescription
modeXFrameOptionsModeMode d'options XFrame à définir.

Renvois

HtmlOutput : sortie, pour le chaînage.