Class HtmlOutput

Sortie HTML

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

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

Méthodes

MéthodeType renvoyéBrève description
addMetaTag(name, content)HtmlOutputAjoute une balise Meta à la page.
append(addedContent)HtmlOutputAjoute un nouveau contenu au contenu de cet élément HtmlOutput.
appendUntrusted(addedContent)HtmlOutputAjoute un nouveau contenu au contenu de cet élément HtmlOutput, à l'aide d'une échappement contextuel.
asTemplate()HtmlTemplateRenvoie un HtmlTemplate basé sur cet objet HtmlOutput.
clear()HtmlOutputEfface le contenu actuel.
getAs(contentType)BlobRenvoie les données de cet objet sous forme de blob converti au type de contenu spécifié.
getBlob()BlobRenvoyez les données de cet objet sous la forme d'un objet blob.
getContent()StringRécupère le contenu de cet élément HtmlOutput.
getFaviconUrl()StringRécupère l'URL d'une balise de lien de 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 les balises méta 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 une balise de lien pour une icône de favoris à la page.
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 désormais aucun effet. Auparavant, elle définissait l'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 la prévention du hameçonnage par clic.

Documentation détaillée

addMetaTag(name, content)

Ajoute une balise Meta à la page. Les balises méta incluses directement dans un fichier HTML Apps Script sont ignorées. Seules les méta-balises 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="..."/>
const 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 méta.
contentStringValeur de l'attribut "content" de la balise méta.

Renvois

HtmlOutput : cette sortie, pour le chaînage.


append(addedContent)

Ajoute un nouveau contenu au contenu de cet élément HtmlOutput. N'utilisez cette option que pour le contenu provenant d'une source fiable, car il n'est pas échappé.

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

Paramètres

NomTypeDescription
addedContentStringContenu à ajouter.

Renvois

HtmlOutput : cette sortie, pour le chaînage.

Génère

Error : si le code HTML n'est pas correctement formaté

Voir aussi


appendUntrusted(addedContent)

Ajoute un nouveau contenu au contenu de cet élément HtmlOutput, à l'aide d'une échappement contextuel.

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écurisée sans balisage ni effet secondaire. Utilisez-le au lieu d'utiliser l'opérateur "append" chaque fois que vous ajoutez du contenu à partir d'une source non fiable, comme un utilisateur, pour éviter d'autoriser accidentellement un bug de script intersites (XSS) où le contenu ou le balisage que vous ajoutez provoque une exécution de code inattendue.

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

Paramètres

NomTypeDescription
addedContentStringContenu à ajouter.

Renvois

HtmlOutput : cette sortie, pour le chaînage.

Génère

Error : si le code HTML est très mal formaté

Voir aussi


asTemplate()

Renvoie un HtmlTemplate basé sur cet objet HtmlOutput. Cette méthode permet de créer un modèle de manière incrémentielle. Les futures modifications apportées à HtmlOutput affecteront également le contenu de HtmlTemplate.

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

Renvois

HtmlTemplate : nouveau HtmlTemplate.


clear()

Efface le contenu actuel.

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

Renvois

HtmlOutput : cette sortie, pour le chaînage.


getAs(contentType)

Renvoie les données de cet objet sous forme de blob converti au type de contenu spécifié. Cette méthode ajoute l'extension appropriée au nom de fichier (par exemple, "monfichier.pdf"). Toutefois, il suppose 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 afficher les quotas quotidiens pour les conversions, consultez la section 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, les valeurs 'image/bmp', 'image/gif', 'image/jpeg' ou 'image/png' sont également valides. Pour un document Google Docs, 'text/markdown' est également valide.

Renvois

Blob : données sous forme de blob.


getBlob()

Renvoyez les données de cet objet sous la forme d'un objet blob.

Renvois

Blob : données sous forme de blob.


getContent()

Récupère le contenu de cet élément HtmlOutput.

// Log "<b>Hello, world!</b>"
const 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 de favicon ajoutée à la page en appelant setFaviconUrl(iconUrl). Les balises de lien de favicon incluses directement dans un fichier HTML Apps Script sont ignorées.

const 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.

const 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 les balises méta ajoutées à la page en appelant addMetaTag(name, content). Les balises méta incluses directement dans un fichier HTML Apps Script sont ignorées.

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

Renvois

HtmlOutputMetaTag[] : tableau d'objets représentant les 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é.

const 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.

const 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.

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

Paramètres

NomTypeDescription
contentStringContenu à diffuser.

Renvois

HtmlOutput : cette sortie, pour le chaînage.

Génère

Error : si le code HTML n'est pas correctement formaté


setFaviconUrl(iconUrl)

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

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

Paramètres

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

Renvois

HtmlOutput : cette 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 le HtmlOutput est publié en tant qu'application Web à la place, 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.

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

Paramètres

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

Renvois

HtmlOutput : cette sortie, pour le chaînage.


setSandboxMode(mode)

Cette méthode n'a désormais aucun effet. Auparavant, elle définissait l'sandbox mode utilisé pour les scripts côté client. Pour protéger les utilisateurs contre le code HTML ou JavaScript malveillant, le code côté client diffusé à partir du 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 scripts 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 du service 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 anciens navigateurs, 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 compatible avec 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 : cette 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 l'ensemble de la page, tandis que pour les HtmlOutput affichées dans Google Sheets, il s'agit du titre de la boîte de dialogue.

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

Paramètres

NomTypeDescription
titleStringNouveau titre.

Renvois

HtmlOutput : cette 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 le HtmlOutput est publié en tant qu'application Web à la place, 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.

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

Paramètres

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

Renvois

HtmlOutput : cette 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 la prévention du hameçonnage par clic.

Le paramètre XFrameOptionsMode.ALLOWALL permet à n'importe quel site d'intégrer la page dans un iFrame. Le développeur doit donc implémenter sa propre protection contre le hameçonnage de clics.

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).
const output = HtmlService.createHtmlOutput('<b>Hello, world!</b>');
output.setXFrameOptionsMode(HtmlService.XFrameOptionsMode.ALLOWALL);

Paramètres

NomTypeDescription
modeXFrameOptionsModeMode des options XFrame à définir.

Renvois

HtmlOutput : cette sortie, pour le chaînage.