Ein HtmlOutput
-Objekt, das über ein Skript bereitgestellt werden kann Aus Sicherheitsgründen können Skripts nicht direkt an einen Browser zurückgegeben werden. Stattdessen müssen sie bereinigt werden, damit keine schädlichen Aktionen ausgeführt werden können. Sie können bereinigtes HTML folgendermaßen zurückgeben:
function doGet() { return HtmlService.createHtmlOutput('<b>Hello, world!</b>'); }Der Code im
HtmlOutput
kann eingebettetes JavaScript und CSS enthalten. Dies ist standardmäßiges clientseitiges JavaScript, mit dem das DOM bearbeitet wird, nicht Apps Script. Alle diese Inhalte werden mithilfe von iFrame-Sandboxing in einer Sandbox ausgeführt. Weitere Informationen finden Sie im Leitfaden zu Einschränkungen im HTML-Dienst.Methoden
Methode | Rückgabetyp | Kurzbeschreibung |
---|---|---|
addMetaTag(name, content) | HtmlOutput | Fügt der Seite ein Meta-Tag hinzu. |
append(addedContent) | HtmlOutput | Fügt neue Inhalte an den Inhalt von HtmlOutput an. |
appendUntrusted(addedContent) | HtmlOutput | Fügt neue Inhalte mit Kontext-Escape an den Inhalt von HtmlOutput an. |
asTemplate() | HtmlTemplate | Gibt ein HtmlTemplate zurück, das von diesem HtmlOutput unterstützt wird. |
clear() | HtmlOutput | Der Inhalt wird gelöscht. |
getAs(contentType) | Blob | Gibt die Daten in diesem Objekt als Blob zurück, das in den angegebenen Inhaltstyp konvertiert wurde. |
getBlob() | Blob | Gibt die Daten in diesem Objekt als Blob zurück. |
getContent() | String | Ruft den Inhalt dieses HtmlOutput ab. |
getFaviconUrl() | String | Ruft die URL für ein Favicon-Link-Tag ab, das der Seite durch Aufrufen von setFaviconUrl(iconUrl) hinzugefügt wird. |
getHeight() | Integer | Ruft die Anfangshöhe des benutzerdefinierten Dialogfelds in Google Docs, Google Tabellen oder Google Formulare ab. |
getMetaTags() | HtmlOutputMetaTag[] | Ruft ein Array von Objekten ab, die Meta-Tags darstellen und der Seite durch Aufrufen von addMetaTag(name, content) hinzugefügt werden. |
getTitle() | String | Ruft den Titel der Ausgabeseite ab. |
getWidth() | Integer | Ruft die Anfangsbreite des benutzerdefinierten Dialogfelds in Google Docs, Google Tabellen oder Google Formulare ab. |
setContent(content) | HtmlOutput | Legt den Inhalt dieses HtmlOutput fest. |
setFaviconUrl(iconUrl) | HtmlOutput | Fügt der Seite ein Link-Tag für ein Favicon hinzu. |
setHeight(height) | HtmlOutput | Legt die Anfangshöhe des benutzerdefinierten Dialogfelds in Google Docs, Google Tabellen oder Google Formulare fest. |
setSandboxMode(mode) | HtmlOutput | Diese Methode hat nun keine Wirkung mehr. Bisher wurde die sandbox
mode für clientseitige Skripts festgelegt. |
setTitle(title) | HtmlOutput | Legt den Titel der Ausgabeseite fest. |
setWidth(width) | HtmlOutput | Legt die Anfangsbreite eines benutzerdefinierten Dialogfelds in Google Docs, Google Tabellen oder Google Formulare fest. |
setXFrameOptionsMode(mode) | HtmlOutput | Legt den Status des X-Frame-Options -Headers der Seite fest, der die Verhinderung von Clickjacking steuert. |
Detaillierte Dokumentation
addMetaTag(name, content)
Fügt der Seite ein Meta-Tag hinzu. Meta-Tags, die direkt in einer Apps Script-HTML-Datei enthalten sind, werden ignoriert. Nur die folgenden Meta-Tags sind zulässig:
<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');
Parameter
Name | Typ | Beschreibung |
---|---|---|
name | String | Der Wert des Namensattributs des Meta-Tags. |
content | String | Der Wert des Inhaltsattributs des Meta-Tags. |
Zurücksenden
HtmlOutput
: Diese Ausgabe zum Verketten.
append(addedContent)
Fügt neue Inhalte an den Inhalt von HtmlOutput
an. Verwenden Sie diese Option nur für Inhalte aus einer vertrauenswürdigen Quelle, da sie nicht maskiert ist.
// 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());
Parameter
Name | Typ | Beschreibung |
---|---|---|
addedContent | String | Der Inhalt, der angefügt werden soll. |
Zurücksenden
HtmlOutput
: Diese Ausgabe zum Verketten.
Throws
Error
– wenn der HTML-Code fehlerhaft ist
Weitere Informationen
appendUntrusted(addedContent)
Fügt neue Inhalte mit Kontext-Escape an den Inhalt von HtmlOutput
an.
Bei dieser Methode werden Inhalte anhand des aktuellen Status von HtmlOutput
korrekt maskiert, sodass das Ergebnis ein sicherer String ohne Markup oder Nebenwirkungen ist. Verwenden Sie diese Methode anstelle von „Anhängen“, wenn Sie Inhalte aus einer nicht vertrauenswürdigen Quelle hinzufügen, z. B. von einem Nutzer, um versehentliches Cross-Site-Scripting (XSS) zu vermeiden, wenn Inhalte oder Markups, die Sie anhängen, eine unerwartete Codeausführung verursachen.
// 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());
Parameter
Name | Typ | Beschreibung |
---|---|---|
addedContent | String | Der Inhalt, der angefügt werden soll. |
Zurücksenden
HtmlOutput
: Diese Ausgabe zum Verketten.
Throws
Error
– wenn der HTML-Code sehr fehlerhaft ist
Weitere Informationen
asTemplate()
Gibt ein HtmlTemplate
zurück, das von diesem HtmlOutput
unterstützt wird. Mit dieser Methode kann eine Vorlage inkrementell erstellt werden. Zukünftige Änderungen an HtmlOutput
wirken sich auch auf den Inhalt von HtmlTemplate
aus.
var output = HtmlService.createHtmlOutput('<b>Hello, world!</b>'); var template = output.asTemplate();
Zurücksenden
HtmlTemplate
: Das neue HtmlTemplate
.
clear()
Der Inhalt wird gelöscht.
var output = HtmlService.createHtmlOutput('<b>Hello, world!</b>'); output.clear();
Zurücksenden
HtmlOutput
: Diese Ausgabe zum Verketten.
getAs(contentType)
Gibt die Daten in diesem Objekt als Blob zurück, das in den angegebenen Inhaltstyp konvertiert wurde. Mit dieser Methode wird dem Dateinamen die entsprechende Erweiterung hinzugefügt, z. B. "myfile.pdf". Es wird jedoch davon ausgegangen, dass der Teil des Dateinamens nach dem letzten Punkt (sofern vorhanden) eine vorhandene Erweiterung ist, die ersetzt werden sollte. Daher wird „"ShoppingList.12.25.2014"“ zu „"ShoppingList.12.25.pdf"“ geändert.
Informationen zum Anzeigen der täglichen Kontingente für Conversions finden Sie unter Kontingente für Google-Dienste. Für neu erstellte Google Workspace-Domains gelten möglicherweise vorübergehend strengere Kontingente.
Parameter
Name | Typ | Beschreibung |
---|---|---|
contentType | String | Der MIME-Typ, in den konvertiert werden soll. Für die meisten Blobs ist 'application/pdf' die einzige gültige Option. Für Bilder im BMP-, GIF-, JPEG- oder PNG-Format sind außerdem 'image/bmp' , 'image/gif' , 'image/jpeg' oder 'image/png' gültig. |
Zurücksenden
Blob
: Die Daten als Blob.
getBlob()
getContent()
Ruft den Inhalt dieses HtmlOutput
ab.
// Log "<b>Hello, world!</b>" var output = HtmlService.createHtmlOutput('<b>Hello, world!</b>'); Logger.log(output.getContent());
Zurücksenden
String
: Der bereitgestellte Inhalt
getFaviconUrl()
Ruft die URL für ein Favicon-Link-Tag ab, das der Seite durch Aufrufen von setFaviconUrl(iconUrl)
hinzugefügt wird. Favicon-Link-Tags, die direkt in einer Apps Script-HTML-Datei enthalten sind, werden ignoriert.
var output = HtmlService.createHtmlOutput('<b>Hello, world!</b>'); output.setFaviconUrl('http://www.example.com/image.png'); Logger.log(output.getFaviconUrl());
Zurücksenden
String
: Die URL des Favicon-Bilds.
getHeight()
Ruft die Anfangshöhe des benutzerdefinierten Dialogfelds in Google Docs, Google Tabellen oder Google Formulare ab. Wenn HtmlOutput
stattdessen als Webanwendung veröffentlicht wird, gibt diese Methode null
zurück. Wenn Sie die Größe eines bereits geöffneten Dialogfelds ändern möchten, rufen Sie im clientseitigen Code google.script.host.setHeight(height)
auf.
var output = HtmlService.createHtmlOutput('<b>Hello, world!</b>'); output.setHeight(200); Logger.log(output.getHeight());
Zurücksenden
Integer
: Die Höhe in Pixeln.
getMetaTags()
Ruft ein Array von Objekten ab, die Meta-Tags darstellen und der Seite durch Aufrufen von addMetaTag(name, content)
hinzugefügt werden. Meta-Tags, die direkt in einer Apps Script-HTML-Datei enthalten sind, werden ignoriert.
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());
Zurücksenden
HtmlOutputMetaTag[]
: Ein Array von Objekten, die Meta-Tags darstellen, die der Seite durch Aufrufen von addMetaTag(name, content)
hinzugefügt werden.
getTitle()
Ruft den Titel der Ausgabeseite ab. Das HTML-Element wird ignoriert.
var output = HtmlService.createHtmlOutput('<b>Hello, world!</b>'); Logger.log(output.getTitle());
Zurücksenden
String
: Der Titel der Seite.
getWidth()
Ruft die Anfangsbreite des benutzerdefinierten Dialogfelds in Google Docs, Google Tabellen oder Google Formulare ab. Wenn HtmlOutput
stattdessen als Webanwendung veröffentlicht wird, gibt diese Methode null
zurück. Wenn Sie die Größe eines bereits geöffneten Dialogfelds ändern möchten, rufen Sie im clientseitigen Code google.script.host.setWidth(width)
auf.
var output = HtmlService.createHtmlOutput('<b>Hello, world!</b>'); output.setWidth(200); Logger.log(output.getWidth());
Zurücksenden
Integer
: Die Breite in Pixeln.
setContent(content)
Legt den Inhalt dieses HtmlOutput
fest.
var output = HtmlService.createHtmlOutput(); output.setContent('<b>Hello, world!</b>');
Parameter
Name | Typ | Beschreibung |
---|---|---|
content | String | Der Inhalt, der bereitgestellt werden soll. |
Zurücksenden
HtmlOutput
: Diese Ausgabe zum Verketten.
Throws
Error
– wenn der HTML-Code fehlerhaft ist
setFaviconUrl(iconUrl)
Fügt der Seite ein Link-Tag für ein Favicon hinzu. Favicon-Link-Tags, die direkt in einer Apps Script-HTML-Datei enthalten sind, werden ignoriert.
var output = HtmlService.createHtmlOutput('<b>Hello, world!</b>'); output.setFaviconUrl('http://www.example.com/image.png');
Parameter
Name | Typ | Beschreibung |
---|---|---|
iconUrl | String | Die URL des Favicon-Bilds, wobei die Bilderweiterung den Bildtyp angibt. |
Zurücksenden
HtmlOutput
: Diese Ausgabe zum Verketten.
setHeight(height)
Legt die Anfangshöhe des benutzerdefinierten Dialogfelds in Google Docs, Google Tabellen oder Google Formulare fest. Wenn HtmlOutput
stattdessen als Web-App veröffentlicht wird, hat diese Methode keine Auswirkungen. Wenn Sie die Größe eines bereits geöffneten Dialogfelds ändern möchten, rufen Sie im clientseitigen Code google.script.host.setHeight(height)
auf.
var output = HtmlService.createHtmlOutput('<b>Hello, world!</b>'); output.setHeight(200);
Parameter
Name | Typ | Beschreibung |
---|---|---|
height | Integer | Die neue Höhe in Pixeln. null führt zu einem Standardwert. |
Zurücksenden
HtmlOutput
: Diese Ausgabe zum Verketten.
setSandboxMode(mode)
Diese Methode hat nun keine Wirkung mehr. Bisher wurde die sandbox
mode
für clientseitige Skripts festgelegt. Damit Nutzer kein schädliches HTML oder JavaScript erhalten, wird clientseitiger Code, der vom HTML-Dienst bereitgestellt wird, in einer Sicherheits-Sandbox ausgeführt, die Einschränkungen für den Code auferlegt. Ursprünglich haben diese Methoden Skriptautoren die Wahl zwischen verschiedenen Versionen der Sandbox ermöglicht, jetzt kann für alle Skripts jedoch der Modus IFRAME
verwendet werden, unabhängig davon, welcher Sandbox-Modus aktiviert ist. Weitere Informationen finden Sie im Leitfaden zu Einschränkungen im HTML-Dienst.
Der Modus IFRAME
gibt viel weniger Einschränkungen als die anderen Sandbox-Modi vor und wird am schnellsten ausgeführt, funktioniert jedoch in bestimmten älteren Browsern, einschließlich Internet Explorer 9, überhaupt nicht. Der Sandbox-Modus kann in einem clientseitigen Skript gelesen werden. Dazu prüfen Sie google.script.sandbox.mode
. Dieses Attribut gibt den tatsächlichen Modus auf dem Client zurück. Dieser kann sich vom Modus unterscheiden, der auf dem Server angefordert wird, wenn der angeforderte Modus vom Browser des Nutzers nicht unterstützt wird.
<!-- Read the sandbox mode (in a client-side script). --> <script> alert(google.script.sandbox.mode); </script>
Parameter
Name | Typ | Beschreibung |
---|---|---|
mode | SandboxMode | Der zu verwendende Sandbox-Modus. |
Zurücksenden
HtmlOutput
: Diese Ausgabe zum Verketten.
setTitle(title)
Legt den Titel der Ausgabeseite fest. Bei Webanwendungen ist dies der Titel der gesamten Seite. Für HtmlOutput
in Google Tabellen ist dies der Titel des Dialogfelds.
var output = HtmlService.createHtmlOutput('<b>Hello, world!</b>'); output.setTitle('My First Page');
Parameter
Name | Typ | Beschreibung |
---|---|---|
title | String | Der neue Titel |
Zurücksenden
HtmlOutput
: Diese Ausgabe zum Verketten.
setWidth(width)
Legt die Anfangsbreite eines benutzerdefinierten Dialogfelds in Google Docs, Google Tabellen oder Google Formulare fest. Wenn HtmlOutput
stattdessen als Web-App veröffentlicht wird, hat diese Methode keine Auswirkungen. Wenn Sie die Größe eines bereits geöffneten Dialogfelds ändern möchten, rufen Sie im clientseitigen Code google.script.host.setWidth(width)
auf.
var output = HtmlService.createHtmlOutput('<b>Hello, world!</b>'); output.setWidth(200);
Parameter
Name | Typ | Beschreibung |
---|---|---|
width | Integer | Die neue Breite in Pixeln. null führt zu einem Standardwert. |
Zurücksenden
HtmlOutput
: Diese Ausgabe zum Verketten.
setXFrameOptionsMode(mode)
Legt den Status des X-Frame-Options
-Headers der Seite fest, der die Verhinderung von Clickjacking steuert.
Wenn XFrameOptionsMode.ALLOWALL
festgelegt ist, kann die Website die Seite einbetten. Der Entwickler sollte daher einen eigenen Schutz vor Hackerangriffen implementieren.
Wenn ein Skript den X-Frame-Options
-Modus nicht aktiviert, verwendet Apps Script den Standardmodus XFrameOptionsMode.DEFAULT
.
// 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);
Parameter
Name | Typ | Beschreibung |
---|---|---|
mode | XFrameOptionsMode | Der festzulegende XFrame-Optionensmodus. |
Zurücksenden
HtmlOutput
: Diese Ausgabe zum Verketten.