Class HtmlOutput

HtmlOutput

Ein HtmlOutput-Objekt, das über ein Skript bereitgestellt werden kann. Aus Sicherheitsgründen können Skripts nicht direkt HTML an einen Browser zurückgeben. Stattdessen müssen sie die Daten bereinigen, damit keine schädlichen Aktionen ausgeführt werden können. So können Sie bereinigtes HTML zurückgeben:

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

MethodeRückgabetypKurzbeschreibung
addMetaTag(name, content)HtmlOutputFügt der Seite ein Meta-Tag hinzu.
append(addedContent)HtmlOutputHängt neue Inhalte an den Inhalt dieses HtmlOutput an.
appendUntrusted(addedContent)HtmlOutputHängt neuen Inhalt an den Inhalt dieses HtmlOutput an und verwendet dabei kontextbezogene Escapesequenzen.
asTemplate()HtmlTemplateGibt ein HtmlTemplate zurück, das von diesem HtmlOutput unterstützt wird.
clear()HtmlOutputLöscht den aktuellen Inhalt.
getAs(contentType)BlobGibt die Daten in diesem Objekt als Blob zurück, das in den angegebenen Inhaltstyp konvertiert wurde.
getBlob()BlobGibt die Daten in diesem Objekt als Blob zurück.
getContent()StringRuft den Inhalt dieses 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 Sheets oder Google Forms 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()IntegerRuft die anfängliche Breite des benutzerdefinierten Dialogfelds in Google Docs, Sheets oder Forms ab.
setContent(content)HtmlOutputLegt den Inhalt dieses HtmlOutput fest.
setFaviconUrl(iconUrl)HtmlOutputFügt 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 Sheets oder Google Formulare fest.
setSandboxMode(mode)HtmlOutputDiese Methode hat jetzt keine Auswirkungen mehr. Zuvor wurde damit die sandbox mode für clientseitige Skripts festgelegt.
setTitle(title)HtmlOutputLegt den Titel der Ausgabeseite fest.
setWidth(width)HtmlOutputLegt die anfängliche Breite eines benutzerdefinierten Dialogfelds in Google Docs, Google Sheets oder Google Forms fest.
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ügt der Seite ein Meta-Tag hinzu. Meta-Tags, die direkt in eine Apps Script-HTML-Datei eingefügt werden, 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 Meta-Tags.
contentStringDer Wert des Attributs „content“ des Meta-Tags.

Rückflug

HtmlOutput – Diese Ausgabe zur Verkettung.


append(addedContent)

Hängt neue Inhalte an den Inhalt dieses HtmlOutput an. Verwenden Sie diese Option nur für Inhalte aus einer vertrauenswürdigen Quelle, da sie nicht maskiert werden.

// 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
addedContentStringDie anzuhängenden Inhalte.

Rückflug

HtmlOutput – Diese Ausgabe zur Verkettung.

Löst

Error – wenn der HTML-Code fehlerhaft ist

Weitere Informationen


appendUntrusted(addedContent)

Hängt neuen Inhalt an den Inhalt dieses HtmlOutput an und verwendet dabei kontextbezogene Escapesequenzen.

Bei dieser Methode werden Inhalte basierend auf dem aktuellen Status von HtmlOutput korrekt maskiert, sodass das Ergebnis ein sicherer String ohne Markup oder Nebeneffekte ist. Verwenden Sie diese Funktion anstelle von „append“, wenn Sie Inhalte aus einer nicht vertrauenswürdigen Quelle, z. B. von einem Nutzer, hinzufügen, um versehentlich einen Cross-Site-Scripting-Fehler (XSS) zu vermeiden, bei dem durch Inhalte oder Markup, die Sie anhängen, unerwarteter Code ausgeführt wird.

// 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
addedContentStringDie anzuhängenden Inhalte.

Rückflug

HtmlOutput – Diese Ausgabe zur Verkettung.

Löst

Error: wenn das HTML sehr fehlerhaft ist

Weitere Informationen


asTemplate()

Gibt ein HtmlTemplate zurück, das von diesem HtmlOutput unterstützt wird. Mit dieser Methode können Sie eine Vorlage schrittweise erstellen. Zukünftige Änderungen an HtmlOutput wirken sich auch auf den Inhalt von 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 zur Verkettung.


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. „meine_datei.pdf“. Dabei wird jedoch davon ausgegangen, dass der Teil des Dateinamens, der auf den letzten Punkt folgt (falls vorhanden), eine vorhandene Erweiterung ist, die ersetzt werden soll. Folglich wird aus „ShoppingList.12.25.2014“ „ShoppingList.12.25.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. Für Bilder im BMP-, GIF-, JPEG- oder PNG-Format sind auch 'image/bmp', 'image/gif', 'image/jpeg' oder 'image/png' gültig. Für ein Google Docs-Dokument ist auch 'text/markdown' gültig.

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 dieses 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 eine Apps Script-HTML-Datei eingefügt werden, 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-Bildes.


getHeight()

Ruft die ursprüngliche Höhe des benutzerdefinierten Dialogfelds in Google Docs, Google Sheets oder Google Forms 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 eine Apps Script-HTML-Datei eingefügt werden, 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()

Ruft die anfängliche Breite des benutzerdefinierten Dialogfelds in Google Docs, Sheets oder Forms 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.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 dieses HtmlOutput fest.

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

Parameter

NameTypBeschreibung
contentStringDie bereitzustellenden Inhalte.

Rückflug

HtmlOutput – Diese Ausgabe zur Verkettung.

Löst

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.

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

Parameter

NameTypBeschreibung
iconUrlStringDie URL des Favicons mit der Bilddateiendung, die den Bildtyp angibt.

Rückflug

HtmlOutput – Diese Ausgabe zur Verkettung.


setHeight(height)

Legt die anfängliche Höhe des benutzerdefinierten Dialogfelds in Google Docs, Google Sheets oder Google Formulare fest. Wenn die 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 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. Bei null wird ein Standardwert verwendet.

Rückflug

HtmlOutput – Diese Ausgabe zur Verkettung.


setSandboxMode(mode)

Diese Methode hat jetzt keine Auswirkungen mehr. Zuvor wurde damit die sandbox mode für clientseitige Skripts festgelegt. Um Nutzer vor bösartigem HTML oder JavaScript zu schützen, wird clientseitiger Code, der vom HTML-Dienst bereitgestellt wird, in einer Sicherheitssandbox ausgeführt, die Einschränkungen für den Code auferlegt. Ursprünglich konnten Skriptautoren mit dieser Methode zwischen verschiedenen Versionen der Sandbox wählen. Jetzt verwenden jedoch alle Skripts den Modus IFRAME, unabhängig vom eingestellten Sandbox-Modus. Weitere Informationen finden Sie im Leitfaden zu Einschränkungen im HTML-Dienst.

Im IFRAME-Modus gelten viel weniger Einschränkungen als in den anderen Sandbox-Modi. Er ist am schnellsten, funktioniert aber in bestimmten älteren Browsern, z. B. Internet Explorer 9, überhaupt nicht. Der Sandbox-Modus kann in einem clientseitigen Script durch Untersuchen von google.script.sandbox.mode gelesen werden. Diese Eigenschaft gibt den tatsächlichen Modus auf dem Client zurück, der sich vom auf dem Server angeforderten Modus unterscheiden kann, 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 zur Verkettung.


setTitle(title)

Legt den Titel der Ausgabeseite fest. Bei Web-Apps 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 zur Verkettung.


setWidth(width)

Legt die anfängliche Breite eines benutzerdefinierten Dialogfelds in Google Docs, Google Sheets oder Google Forms fest. Wenn die 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 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 führt zu einem Standardwert.

Rückflug

HtmlOutput – Diese Ausgabe zur Verkettung.


setXFrameOptionsMode(mode)

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

Wenn XFrameOptionsMode.ALLOWALL festgelegt ist, kann jede Website die Seite in einem iFrame einbetten. Entwickler sollten daher einen eigenen Schutz vor Clickjacking implementieren.

Wenn in einem Skript 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 XFrame-Options-Modus, der festgelegt werden soll.

Rückflug

HtmlOutput – Diese Ausgabe zur Verkettung.