Class HtmlOutput

HtmlAusgabe

Ein HtmlOutput-Objekt, das über ein Script bereitgestellt werden kann. Aus Sicherheitsgründen können Scripts keine HTML-Dateien direkt an einen Browser zurückgeben. Stattdessen müssen sie sie so bereinigen, dass sie keine schädlichen Aktionen ausführen kann. So kannst du dein gereinigtes HTML zurückgeben:

function doGet() {
  return HtmlService.createHtmlOutput('<b>Hello, world!</b>');
}
Der Code in der HtmlOutput kann eingebettetes JavaScript und CSS enthalten. Dabei handelt es sich um standardmäßiges clientseitiges JavaScript, das das DOM manipuliert, nicht um 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

MethodeRückgabetypKurzbeschreibung
addMetaTag(name, content)HtmlOutputFügen Sie der Seite ein Meta-Tag hinzu.
append(addedContent)HtmlOutputDem Inhalt dieser HtmlOutput werden neue Inhalte angefügt.
appendUntrusted(addedContent)HtmlOutputFügen Sie dem Inhalt dieser HtmlOutput mithilfe von kontextbezogenem Escapen neue Inhalte an.
asTemplate()HtmlTemplateGibt eine HtmlTemplate zurück, die von diesem HtmlOutput unterstützt wird.
clear()HtmlOutputLöscht den aktuellen Inhalt.
getAs(contentType)BlobGibt die Daten in diesem Objekt als Blob zurück, der in den angegebenen Inhaltstyp konvertiert wurde.
getBlob()BlobGibt die Daten in diesem Objekt als Blob zurück.
getContent()StringRuft den Inhalt dieser HtmlOutput ab.
getFaviconUrl()StringRuft die URL für ein Favicon-Link-Tag ab, das der Seite durch Aufrufen von setFaviconUrl(iconUrl) hinzugefügt wurde.
getHeight()IntegerRuft die ursprüngliche Hö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 der Seite durch Aufrufen von addMetaTag(name, content) hinzugefügt wurden.
getTitle()StringRuft den Titel der Ausgabeseite ab.
getWidth()IntegerDie anfängliche Breite des benutzerdefinierten Dialogfelds in Google Docs, Google Tabellen oder Google Formulare.
setContent(content)HtmlOutputLegt den Inhalt dieser HtmlOutput fest.
setFaviconUrl(iconUrl)HtmlOutputFügen Sie der Seite ein Link-Tag für ein Favicon hinzu.
setHeight(height)HtmlOutputLegt die anfängliche Höhe des benutzerdefinierten Dialogfelds in Google Docs, Google Tabellen oder Google Formulare fest.
setSandboxMode(mode)HtmlOutputDiese Methode hat jetzt keine Auswirkungen mehr. Bisher wurde damit die sandbox mode für clientseitige Scripts festgelegt.
setTitle(title)HtmlOutputHiermit wird der Titel der Ausgabeseite festgelegt.
setWidth(width)HtmlOutputDamit wird die Anfangsbreite eines benutzerdefinierten Dialogfelds in Google Docs, Google Tabellen oder Google Formulare festgelegt.
setXFrameOptionsMode(mode)HtmlOutputLegt den Status des X-Frame-Options-Headers der Seite fest, der die Clickjacking-Prävention steuert.

Detaillierte Dokumentation

addMetaTag(name, content)

Fügen Sie 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="..."/>
const output = HtmlService.createHtmlOutput('<b>Hello, world!</b>');
output.addMetaTag('viewport', 'width=device-width, initial-scale=1');

Parameter

NameTypBeschreibung
nameStringDer Wert des Namensattributs des Metatags.
contentStringDer Wert des Inhaltsattributs des Metatags.

Rückflug

HtmlOutput – Diese Ausgabe für die Verkettung.


append(addedContent)

Dem Inhalt dieser HtmlOutput werden neue Inhalte angefügt. Verwenden Sie diese Option nur für Inhalte aus einer vertrauenswürdigen Quelle, da sie nicht entkommentiert wird.

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

Parameter

NameTypBeschreibung
addedContentStringDer anzuhängende Inhalt.

Rückflug

HtmlOutput – Diese Ausgabe für die Verkettung.

Löst

Error – wenn der HTML-Code fehlerhaft ist

Weitere Informationen


appendUntrusted(addedContent)

Fügen Sie dem Inhalt dieser HtmlOutput mithilfe von kontextbezogenem Escapen neue Inhalte an.

Bei dieser Methode werden Inhalte basierend auf dem aktuellen Status der HtmlOutput korrekt entkommentiert, sodass das Ergebnis ein sicherer String ohne Markup oder Nebenwirkungen ist. Verwenden Sie diese Funktion anstelle von „append“, wenn Sie Inhalte aus einer nicht vertrauenswürdigen Quelle hinzufügen, z. B. von einem Nutzer. So vermeiden Sie, dass versehentlich ein XSS-Fehler (Cross-Site-Scripting) zugelassen wird, bei dem Inhalte oder Markup, die Sie anhängen, zu einer unerwarteten Codeausführung führen.

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

Parameter

NameTypBeschreibung
addedContentStringDer anzuhängende Inhalt.

Rückflug

HtmlOutput – Diese Ausgabe für die Verkettung.

Löst

Error – wenn der HTML-Code sehr fehlerhaft ist

Weitere Informationen


asTemplate()

Gibt eine HtmlTemplate zurück, die von diesem HtmlOutput unterstützt wird. Mit dieser Methode können Sie eine Vorlage schrittweise erstellen. Künftige Änderungen an HtmlOutput wirken sich auch auf den Inhalt der HtmlTemplate aus.

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

Rückflug

HtmlTemplate – die neue HtmlTemplate.


clear()

Löscht den aktuellen Inhalt.

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

Rückflug

HtmlOutput – Diese Ausgabe für die Verkettung.


getAs(contentType)

Gibt die Daten in diesem Objekt als Blob zurück, der in den angegebenen Inhaltstyp konvertiert wurde. Bei dieser Methode wird dem Dateinamen die entsprechende Erweiterung hinzugefügt, z. B. „meinedatei.pdf“. Es wird jedoch davon ausgegangen, dass der Teil des Dateinamens, der auf den letzten Punkt (falls vorhanden) folgt, eine vorhandene Erweiterung ist, die ersetzt werden soll. Daraus wird „Einkaufsliste.25.12.2014“ zu „Einkaufsliste.25.12.pdf“.

Die 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

NameTypBeschreibung
contentTypeStringDer MIME-Typ, in den konvertiert werden soll. Für die meisten Blobs ist 'application/pdf' die einzige gültige Option. Bei Bildern im BMP-, GIF-, JPEG- oder PNG-Format sind auch 'image/bmp', 'image/gif', 'image/jpeg' oder 'image/png' zulässig. Für ein Google Docs-Dokument ist auch 'text/markdown' zulässig.

Rückflug

Blob – die Daten als Blob.


getBlob()

Gibt die Daten in diesem Objekt als Blob zurück.

Rückflug

Blob – die Daten als Blob.


getContent()

Ruft den Inhalt dieser HtmlOutput ab.

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

Rückflug

String: Die ausgelieferten Inhalte.


getFaviconUrl()

Ruft die URL für ein Favicon-Link-Tag ab, das der Seite durch Aufrufen von setFaviconUrl(iconUrl) hinzugefügt wurde. Favicon-Link-Tags, die direkt in einer Apps Script-HTML-Datei enthalten sind, werden ignoriert.

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

Rückflug

String: Die URL des Favicon-Bilds.


getHeight()

Ruft die ursprüngliche Höhe des benutzerdefinierten Dialogfelds in Google Docs, Google Tabellen oder Google Formulare ab. Wenn die HtmlOutput stattdessen als Web-App veröffentlicht wird, gibt diese Methode null zurück. Wenn Sie die Größe eines bereits geöffneten Dialogfelds ändern möchten, rufen Sie google.script.host.setHeight(height) im clientseitigen Code auf.

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

Rückflug

Integer – die Höhe in Pixeln.


getMetaTags()

Ruft ein Array von Objekten ab, die Meta-Tags darstellen, die der Seite durch Aufrufen von addMetaTag(name, content) hinzugefügt wurden. Meta-Tags, die direkt in einer Apps Script-HTML-Datei enthalten sind, werden ignoriert.

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

Rückflug

HtmlOutputMetaTag[]: Ein Array von Objekten, die Meta-Tags darstellen, die der Seite durch Aufrufen von addMetaTag(name, content) hinzugefügt wurden.


getTitle()

Ruft den Titel der Ausgabeseite ab. Das HTML-Element <title> wird ignoriert.

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

Rückflug

String: Der Titel der Seite.


getWidth()

Die anfängliche Breite des benutzerdefinierten Dialogfelds in Google Docs, Google Tabellen oder Google Formulare. Wenn die HtmlOutput stattdessen als Web-App veröffentlicht wird, gibt diese Methode null zurück. Wenn Sie die Größe eines bereits geöffneten Dialogfelds ändern möchten, rufen Sie google.script.host.setWidth(width) im clientseitigen Code auf.

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

Rückflug

Integer: Die Breite in Pixeln.


setContent(content)

Legt den Inhalt dieser HtmlOutput fest.

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

Parameter

NameTypBeschreibung
contentStringDie zu präsentierenden Inhalte.

Rückflug

HtmlOutput – Diese Ausgabe für die Verkettung.

Löst

Error – wenn der HTML-Code fehlerhaft ist


setFaviconUrl(iconUrl)

Fügen Sie der Seite ein Link-Tag für ein Favicon hinzu. Favicon-Link-Tags, die direkt in einer HTML-Datei des Apps-Scripts enthalten sind, werden ignoriert.

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

Parameter

NameTypBeschreibung
iconUrlStringDie URL des Favicon-Bilds, wobei die Bilderweiterung den Bildtyp angibt.

Rückflug

HtmlOutput – Diese Ausgabe für die Verkettung.


setHeight(height)

Legt die anfängliche Höhe des benutzerdefinierten Dialogfelds in Google Docs, Google Tabellen oder Google Formulare fest. Wenn die HtmlOutput stattdessen als Webanwendung veröffentlicht wird, hat diese Methode keine Auswirkungen. Wenn Sie die Größe eines bereits geöffneten Dialogfelds ändern möchten, rufen Sie google.script.host.setHeight(height) im clientseitigen Code auf.

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

Parameter

NameTypBeschreibung
heightIntegerDie neue Höhe in Pixeln. null ergibt den Standardwert.

Rückflug

HtmlOutput – Diese Ausgabe für die Verkettung.


setSandboxMode(mode)

Diese Methode hat jetzt keine Auswirkungen mehr. Bisher wurde damit die sandbox mode für clientseitige Scripts festgelegt. Um Nutzer vor schädlichem HTML- oder JavaScript zu schützen, wird clientseitiger Code, der über den HTML-Dienst bereitgestellt wird, in einer Sicherheits-Sandbox ausgeführt, die Einschränkungen für den Code vorschreibt. Ursprünglich konnten Scriptautoren mit dieser Methode zwischen verschiedenen Sandbox-Versionen wählen. Jetzt wird jedoch unabhängig vom festgelegten Sandbox-Modus der IFRAME-Modus für alle Scripts verwendet. Weitere Informationen finden Sie im Leitfaden zu Einschränkungen im HTML-Dienst.

Der IFRAME-Modus hat viel weniger Einschränkungen als die anderen Sandbox-Modi und läuft am schnellsten. Er funktioniert jedoch in bestimmten älteren Browsern, einschließlich Internet Explorer 9, überhaupt nicht. Der Sandbox-Modus kann in einem clientseitigen Script durch Prüfen von google.script.sandbox.mode gelesen werden. Diese Eigenschaft gibt den tatsächlichen Modus auf dem Client zurück. Dieser kann vom auf dem Server angeforderten Modus abweichen, 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

NameTypBeschreibung
modeSandboxModeDer zu verwendende Sandbox-Modus.

Rückflug

HtmlOutput – Diese Ausgabe für die Verkettung.


setTitle(title)

Hiermit wird der Titel der Ausgabeseite festgelegt. Bei Webanwendungen ist dies der Titel der gesamten Seite. Bei HtmlOutput, die in Google Tabellen angezeigt werden, ist dies der Dialogtitel.

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

Parameter

NameTypBeschreibung
titleStringDer neue Titel.

Rückflug

HtmlOutput – Diese Ausgabe für die Verkettung.


setWidth(width)

Damit wird die Anfangsbreite eines benutzerdefinierten Dialogfelds in Google Docs, Google Tabellen oder Google Formulare festgelegt. Wenn die HtmlOutput stattdessen als Webanwendung veröffentlicht wird, hat diese Methode keine Auswirkungen. Wenn Sie die Größe eines bereits geöffneten Dialogfelds ändern möchten, rufen Sie google.script.host.setWidth(width) im clientseitigen Code auf.

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

Parameter

NameTypBeschreibung
widthIntegerDie neue Breite in Pixeln. null ergibt den Standardwert.

Rückflug

HtmlOutput – Diese Ausgabe für die Verkettung.


setXFrameOptionsMode(mode)

Legt den Status des X-Frame-Options-Headers der Seite fest, der die Clickjacking-Prävention steuert.

Bei der Einstellung XFrameOptionsMode.ALLOWALL kann jede Website die Seite in einem iFrame einbetten. Daher sollte der Entwickler seinen eigenen Schutz vor Clickjacking implementieren.

Wenn in einem Script kein X-Frame-Options-Modus festgelegt ist, verwendet Apps Script standardmäßig den XFrameOptionsMode.DEFAULT-Modus.

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

Parameter

NameTypBeschreibung
modeXFrameOptionsModeDer zu festzulegende XFrame-Optionsmodus.

Rückflug

HtmlOutput – Diese Ausgabe für die Verkettung.