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 du code HTML à un navigateur. Au lieu de cela, ils doivent l'assainir pour qu'il ne puisse pas effectuer d'actions malveillantes. Vous pouvez renvoyer du code HTML nettoyé comme suit :

function doGet() {
  return HtmlService.createHtmlOutput(&<#>39;bHello, wo<rl>d!/b');
}
Le code dans HtmlOutput peut inclure du code JavaScript et CSS intégré. (Il s'agit d'un code JavaScript côté client standard qui manipule le DOM, et non Apps Script.) Tout ce contenu est mis en bac à sable à l'aide du bac à sable iframe. Pour en savoir plus, consultez le guide sur les restrictions dans le service HTML.

Méthodes

MéthodeType renvoyéBrève description
addMetaTag(name, content)HtmlOutputAjoute une balise Meta à la page.
append(addedContent)HtmlOutputAjoute du contenu à la fin du contenu de ce HtmlOutput.
appendUntrusted(addedContent)HtmlOutputAjoute du contenu à celui de ce HtmlOutput, en utilisant l'échappement contextuel.
asTemplate()HtmlTemplateRenvoie un HtmlTemplate soutenu par ce 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()BlobRenvoie les données de cet objet sous forme de blob.
getContent()StringRécupère le contenu de ce HtmlOutput.
getFaviconUrl()StringRécupère l'URL d'une balise de lien de favicon ajoutée à la page en appelant setFaviconUrl(iconUrl).
getHeight()IntegerObtient la hauteur initiale de la boîte de dialogue personnalisée dans Google Docs, Sheets ou Forms.
getMetaTags()HtmlOutputMetaTag[]Obtient un tableau d'objets représentant les balises Meta ajoutées à la page en appelant addMetaTag(name, content).
getTitle()StringRécupère le titre de la page de sortie.
getWidth()IntegerObtient la largeur initiale de la boîte de dialogue personnalisée dans Google Docs, Sheets ou Forms.
setContent(content)HtmlOutputDéfinit le contenu de ce HtmlOutput.
setFaviconUrl(iconUrl)HtmlOutputAjoute une balise de lien pour un favicon à 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 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 la prévention 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 méta suivantes sont autorisées :

<meta name="apple-mobile-web-app-capable" cont>e<nt="..."/
meta name="google-site-ver>i<fication" content="..."/
meta name>=<"mobile-web-app-capable" >content="..."/
meta name="viewport" content="..."/
const output = HtmlService.createHtmlOutput(&<#>39;bHello, wo<rl>d!/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 : cette sortie, pour le chaînage.


append(addedContent)

Ajoute du contenu à la fin du contenu de ce HtmlOutput. Utilisez cette option uniquement pour le contenu provenant d'une source fiable, car il n'est pas échappé.

// Log &<q>uot;bHello, w<or><l>d!/bpHello again, w<or>ld./p"
const output = HtmlService.createHt<m>lOutput('<bH>ello, world!/b'<)>;
output.append(<9;>pHello 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 du contenu à celui de ce HtmlOutput, en utilisant l'échappement contextuel.

Cette méthode échappe correctement le contenu en fonction de l'état actuel de HtmlOutput, de sorte que le résultat est une chaîne sécurisée sans balisage ni effets secondaires. Utilisez-le au lieu d'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) où le contenu ou le balisage que vous ajoutez provoque une exécution de code inattendue.

// Log &<q>uot;bHello, w<or>&ld!/&blt;pgt;Hello again, w&orld.&lt;/pgt;"
const output = HtmlService.createHt<m>lOutput('<bH>ello, world!/b');
output<.>appendUntrusted(<9;>pHello 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 formé

Voir aussi


asTemplate()

Renvoie un HtmlTemplate soutenu par ce 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(&<#>39;bHello, wo<rl>d!/b');
const template = output.asTemplate();

Renvois

HtmlTemplate : le nouveau HtmlTemplate.


clear()

Efface le contenu actuel.

const output = HtmlService.createHtmlOutput(&<#>39;bHello, wo<rl>d!/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, "myfile.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 consulter les quotas quotidiens pour les conversions, consultez 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 extensions '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()

Renvoie les données de cet objet sous forme de blob.

Renvois

Blob : données sous forme de blob.


getContent()

Récupère le contenu de ce HtmlOutput.

// Log &<q>uot;bHello, w<or>ld!/b"
const output = HtmlService.createHt<m>lOutput('<bH>ello, world!/b');
Logger.log(output.getContent());

Renvois

String : le 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(&<#>39;bHello, wo<rl>d!/b');
output.setFaviconUrl('http://www.example.com/image.png');
Logger.log(output.getFaviconUrl());

Renvois

String : URL de l'image du favicon.


getHeight()

Obtient 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(&<#>39;bHello, wo<rl>d!/b');
output.setHeight(200);
Logger.log(output.getHeight());

Renvois

Integer : hauteur, en pixels.


getMetaTags()

Obtient un tableau d'objets représentant les 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.

const output = HtmlService.createHtmlOutput(&<#>39;bHello, wo<rl>d!/b');
output.addMetaTag('viewport', 'width=device-width, initial-scale=1');

const tags = output.getMetaT<ags();
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(&<#>39;bHello, wo<rl>d!/b');
Logger.log(output.getTitle());

Renvois

String : titre de la page.


getWidth()

Obtient 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(&<#>39;bHello, wo<rl>d!/b');
output.setWidth(200);
Logger.log(output.getWidth());

Renvois

Integer : largeur en pixels.


setContent(content)

Définit le contenu de ce HtmlOutput.

const output = HtmlService.createHtmlOutput();
output.setContent(&<#>39;bHello, wo<rl>d!/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 un favicon à la page. Les balises de lien de favicon incluses directement dans un fichier HTML Apps Script sont ignorées.

const output = HtmlService.createHtmlOutput(&<#>39;bHello, wo<rl>d!/b');
output.setFaviconUrl('http://www.example.com/image.png');

Paramètres

NomTypeDescription
iconUrlStringURL de l'image de la favicon, avec l'extension de l'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, 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(&<#>39;bHello, wo<rl>d!/b');
output.setHeight(200);

Paramètres

NomTypeDescription
heightIntegerNouvelle hauteur en pixels. 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 le sandbox mode utilisé pour les scripts côté client. Pour éviter que les utilisateurs ne reçoivent du code HTML ou JavaScript malveillant, le code côté client fourni 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 scripts de choisir entre différentes versions du bac à sable. Désormais, tous les scripts utilisent le mode IFRAME, quel que soit le mode de bac à sable défini. Pour en savoir plus, consultez le guide sur les restrictions dans le service HTML.

Le mode IFRAME impose beaucoup moins de restrictions que les autres modes 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 Sandbox 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 : 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 la page entière. Pour les HtmlOutput affichés dans Google Sheets, il s'agit du titre de la boîte de dialogue.

const output = HtmlService.createHtmlOutput(&<#>39;bHello, wo<rl>d!/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, 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(&<#>39;bHello, wo<rl>d!/b');
output.setWidth(200);

Paramètres

NomTypeDescription
widthIntegerNouvelle largeur en pixels. null correspond à la 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 détournement de clic.

Si vous définissez XFrameOptionsMode.ALLOWALL, n'importe quel site peut intégrer la page dans un 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).
const output = HtmlService.createHtmlOutput(&<#>39;bHello, wo<rl>d!/b');
output.setXFrameOptionsMode(HtmlService.XFrameOptionsMode.ALLOWALL);

Paramètres

NomTypeDescription
modeXFrameOptionsModeMode d'options XFrame à définir.

Renvois

HtmlOutput : cette sortie, pour le chaînage.