Ein HtmlOutput
-Objekt, das von einem Script bereitgestellt werden kann. Aus Sicherheitsgründen können Skripts HTML-Code nicht direkt an einen Browser zurückgeben. Stattdessen muss es bereinigt werden, damit es keine schädlichen Aktionen ausführen kann. Sie können bereinigten HTML-Code wie folgt zurückgeben:
function doGet() { return HtmlService.createHtmlOutput('<b>Hello, world!</b>'); }Der Code im
HtmlOutput
kann eingebetteten JavaScript- und CSS-Code enthalten. Dies ist standardmäßiges clientseitiges JavaScript, mit dem das DOM bearbeitet wird, nicht Apps Script. Der gesamte Inhalt wird in einer Sandbox mit iFrame-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 dem Inhalt von HtmlOutput neue Inhalte hinzu. |
appendUntrusted(addedContent) | HtmlOutput | Hängt mithilfe von kontextbezogenem Escapezeichen neuen Inhalt an den Inhalt von HtmlOutput an. |
asTemplate() | HtmlTemplate | Gibt ein HtmlTemplate zurück, das durch diese HtmlOutput gestützt wird. |
clear() | HtmlOutput | Löscht den aktuellen Inhalt. |
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 von HtmlOutput ab. |
getFaviconUrl() | String | Ruft durch Aufrufen von setFaviconUrl(iconUrl) die URL für ein Favicon-Link-Tag ab, das der Seite hinzugefügt wurde. |
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, die durch Aufrufen von addMetaTag(name, content) zur Seite hinzugefügt wurden. |
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 von 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 jetzt keine Auswirkungen. Bisher wurde die für clientseitige Skripts verwendete sandbox
mode 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, mit dem die Clickjacking-Verhinderung gesteuert wird. |
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. |
Return
HtmlOutput
: Diese Ausgabe für die Verkettung.
append(addedContent)
Fügt dem Inhalt von HtmlOutput
neue Inhalte hinzu. Verwenden Sie dieses Attribut nur für Inhalte von einer vertrauenswürdigen Quelle, da es nicht maskiert wird.
// 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. |
Return
HtmlOutput
: Diese Ausgabe für die Verkettung.
Löst aus
Error
: Wenn der HTML-Code fehlerhaft ist
Weitere Informationen
appendUntrusted(addedContent)
Hängt mithilfe von kontextbezogenem Escapezeichen neuen Inhalt an den Inhalt von HtmlOutput
an.
Diese Methode maskiert Inhalte basierend auf dem aktuellen Status von HtmlOutput
korrekt, sodass das Ergebnis ein sicherer String ohne Markup oder seitliche Auswirkungen ist. Verwenden Sie diese Methode anstelle von „append“, wenn Sie Inhalte aus einer nicht vertrauenswürdigen Quelle hinzufügen, z. B. von einem Nutzer, um versehentlich einen Cross-Site-Scripting-Fehler (XSS) zuzulassen, bei dem von Ihnen angefügte Inhalte oder Markups 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. |
Return
HtmlOutput
: Diese Ausgabe für die Verkettung.
Löst aus
Error
: Wenn der HTML-Code stark fehlerhaft ist
Weitere Informationen
asTemplate()
Gibt ein HtmlTemplate
zurück, das durch diese HtmlOutput
gestützt wird. Diese Methode kann verwendet werden, um eine Vorlage inkrementell aufzubauen. 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();
Return
HtmlTemplate
: Das neue HtmlTemplate
.
clear()
Löscht den aktuellen Inhalt.
var output = HtmlService.createHtmlOutput('<b>Hello, world!</b>'); output.clear();
Return
HtmlOutput
: Diese Ausgabe für die Verkettung.
getAs(contentType)
Gibt die Daten in diesem Objekt als Blob zurück, das in den angegebenen Inhaltstyp konvertiert wurde. Bei dieser Methode wird dem Dateinamen die entsprechende Erweiterung hinzugefügt, z. B. "myfile.pdf". Dabei wird jedoch davon ausgegangen, dass der Teil des Dateinamens, der auf den letzten Punkt (falls vorhanden) folgt, eine vorhandene Erweiterung ist, die ersetzt werden sollte. Aus „ShoppingList.12.25.2014“ wird dann „ShoppingList.12.25.pdf“.
Informationen zu den Tageskontingenten 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 auch 'image/bmp' , 'image/gif' , 'image/jpeg' oder 'image/png' gültig. |
Return
Blob
: Die Daten als Blob.
getBlob()
getContent()
Ruft den Inhalt von HtmlOutput
ab.
// Log "<b>Hello, world!</b>" var output = HtmlService.createHtmlOutput('<b>Hello, world!</b>'); Logger.log(output.getContent());
Return
String
: Der bereitgestellte Content.
getFaviconUrl()
Ruft durch Aufrufen von setFaviconUrl(iconUrl)
die URL für ein Favicon-Link-Tag ab, das der Seite hinzugefügt wurde. 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());
Return
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 anpassen möchten, rufen Sie
google.script.host.setHeight(height)
im clientseitigen Code auf.
var output = HtmlService.createHtmlOutput('<b>Hello, world!</b>'); output.setHeight(200); Logger.log(output.getHeight());
Return
Integer
: Die Höhe in Pixeln.
getMetaTags()
Ruft ein Array von Objekten ab, die Meta-Tags darstellen, die durch Aufrufen von addMetaTag(name, content)
zur Seite hinzugefügt wurden. 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());
Return
HtmlOutputMetaTag[]
: Ein Array von Objekten, die Meta-Tags darstellen, die durch Aufrufen von addMetaTag(name, content)
zur Seite hinzugefügt wurden.
getTitle()
Ruft den Titel der Ausgabeseite ab. Das HTML-Element <title> wird ignoriert.
var output = HtmlService.createHtmlOutput('<b>Hello, world!</b>'); Logger.log(output.getTitle());
Return
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 anpassen möchten, rufen Sie
google.script.host.setWidth(width)
im clientseitigen Code auf.
var output = HtmlService.createHtmlOutput('<b>Hello, world!</b>'); output.setWidth(200); Logger.log(output.getWidth());
Return
Integer
: Die Breite in Pixeln.
setContent(content)
Legt den Inhalt von HtmlOutput
fest.
var output = HtmlService.createHtmlOutput(); output.setContent('<b>Hello, world!</b>');
Parameter
Name | Typ | Beschreibung |
---|---|---|
content | String | Der bereitzustellende Inhalt. |
Return
HtmlOutput
: Diese Ausgabe für die Verkettung.
Löst aus
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. |
Return
HtmlOutput
: Diese Ausgabe für die Verkettung.
setHeight(height)
Legt die Anfangshöhe des benutzerdefinierten Dialogfelds in Google Docs, Google Tabellen oder Google Formulare fest. Wenn HtmlOutput
stattdessen als Webanwendung veröffentlicht wird, hat diese Methode keine Auswirkungen. Wenn Sie die Größe eines bereits geöffneten Dialogfelds anpassen möchten, rufen Sie
google.script.host.setHeight(height)
im clientseitigen Code 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. |
Return
HtmlOutput
: Diese Ausgabe für die Verkettung.
setSandboxMode(mode)
Diese Methode hat jetzt keine Auswirkungen. Bisher wurde die für clientseitige Skripts verwendete sandbox
mode
festgelegt. Um Nutzer vor schädlichem HTML- oder JavaScript-Code zu schützen, wird clientseitiger Code, der vom HTML-Dienst bereitgestellt wird, in einer Sicherheits-Sandbox ausgeführt, durch die der Code eingeschränkt wird. Ursprünglich konnten Skriptautoren mit dieser Methode zwischen verschiedenen Versionen der Sandbox auswählen. Jetzt verwenden alle Skripts jetzt den Modus IFRAME
, unabhängig davon, welcher Sandbox-Modus festgelegt wurde. Weitere Informationen finden Sie im Leitfaden zu Einschränkungen im HTML-Dienst.
Für den Modus IFRAME
gelten wesentlich weniger Einschränkungen als in den anderen Sandbox-Modi. Er 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 Script gelesen werden. Dazu muss google.script.sandbox.mode
geprüft werden. Dieses Attribut gibt den tatsächlichen Modus auf dem Client zurück, der sich vom Modus unterscheiden kann, der vom Server angefordert wird, wenn der angeforderte Modus im 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. |
Return
HtmlOutput
: Diese Ausgabe für die Verkettung.
setTitle(title)
Legt den Titel der Ausgabeseite fest. Bei Web-Apps ist dies der Titel der gesamten Seite, während dies für HtmlOutput
in Google Tabellen der Titel des Dialogfelds ist.
var output = HtmlService.createHtmlOutput('<b>Hello, world!</b>'); output.setTitle('My First Page');
Parameter
Name | Typ | Beschreibung |
---|---|---|
title | String | Der neue Titel. |
Return
HtmlOutput
: Diese Ausgabe für die Verkettung.
setWidth(width)
Legt die Anfangsbreite eines benutzerdefinierten Dialogfelds in Google Docs, Google Tabellen oder Google Formulare fest. Wenn HtmlOutput
stattdessen als Webanwendung veröffentlicht wird, hat diese Methode keine Auswirkungen. Wenn Sie die Größe eines bereits geöffneten Dialogfelds anpassen möchten, rufen Sie
google.script.host.setWidth(width)
im clientseitigen Code 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. |
Return
HtmlOutput
: Diese Ausgabe für die Verkettung.
setXFrameOptionsMode(mode)
Legt den Status des X-Frame-Options
-Headers der Seite fest, mit dem die Clickjacking-Verhinderung gesteuert wird.
Wenn du XFrameOptionsMode.ALLOWALL
festlegst, kann jede Website die Seite in iFrames einbinden. Daher sollte der Entwickler seinen eigenen Schutz vor Clickjacking implementieren.
Wenn für ein Script kein X-Frame-Options
-Modus festgelegt wird, verwendet Apps Script den XFrameOptionsMode.DEFAULT
-Modus als Standard.
// 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-Optionsmodus. |
Return
HtmlOutput
: Diese Ausgabe für die Verkettung.