Class HtmlOutput

HtmlOutput

Obiekt HtmlOutput, który może być wyświetlany ze skryptu. Ze względów bezpieczeństwa skrypty nie mogą bezpośrednio zwracać kodu HTML do przeglądarki. Zamiast tego muszą go odkażać, aby nie mógł wykonywać szkodliwych działań. Możesz zwrócić oczyszczony kod HTML w takiej postaci:

function doGet() {
  return HtmlService.createHtmlOutput('<b>Hello, world!</b>');
}
Kod w pliku HtmlOutput może zawierać osadzony kod JavaScript i CSS. (To jest standardowy kod JavaScript po stronie klienta, który manipuluje DOM, a nie Apps Script). Wszystkie te treści są umieszczane w piaskownicy za pomocą piaskownicy iframe. Więcej informacji znajdziesz w przewodniku po ograniczeniach w usłudze HTML.

Metody

MetodaZwracany typKrótki opis
addMetaTag(name, content)HtmlOutputDodaje metatag do strony.
append(addedContent)HtmlOutputDodaje nowe treści do treści tego HtmlOutput.
appendUntrusted(addedContent)HtmlOutputDodaje nowe treści do treści tego HtmlOutput, używając ucieczki kontekstowej.
asTemplate()HtmlTemplateZwraca HtmlTemplate, który jest obsługiwany przez tę HtmlOutput.
clear()HtmlOutputCzyści bieżące treści.
getAs(contentType)BlobZwraca dane z tego obiektu jako blob przekonwertowany na określony typ treści.
getBlob()BlobZwraca dane z tego obiektu jako blob.
getContent()StringPobiera zawartość tego HtmlOutput.
getFaviconUrl()StringPobiera adres URL tagu linku do ikony favicon dodanego do strony przez wywołanie funkcji setFaviconUrl(iconUrl).
getHeight()IntegerPobiera początkową wysokość okna niestandardowego w Dokumentach, Arkuszach lub Formularzach Google.
getMetaTags()HtmlOutputMetaTag[]Pobiera tablicę obiektów, które reprezentują metatagi dodane do strony przez wywołanie funkcji addMetaTag(name, content).
getTitle()StringPobiera tytuł strony wyjściowej.
getWidth()IntegerPobiera początkową szerokość okna dialogowego niestandardowego w Dokumentach, Arkuszach lub Formularzach Google.
setContent(content)HtmlOutputOkreśla zawartość tego HtmlOutput.
setFaviconUrl(iconUrl)HtmlOutputDodaje tag linku do ikony favicon na stronie.
setHeight(height)HtmlOutputOkreśla początkową wysokość okna niestandardowego w Dokumentach, Arkuszach lub Formularzach Google.
setSandboxMode(mode)HtmlOutputTa metoda nie ma teraz żadnego wpływu – wcześniej ustawiała wartość sandbox mode używaną w skryptach po stronie klienta.
setTitle(title)HtmlOutputUstawia tytuł strony wyjściowej.
setWidth(width)HtmlOutputUstawia początkową szerokość okna dialogowego niestandardowego w Dokumentach, Arkuszach lub Formularzach Google.
setXFrameOptionsMode(mode)HtmlOutputUstawia stan nagłówka X-Frame-Options strony, który kontroluje zapobieganie atakom typu clickjacking.

Szczegółowa dokumentacja

addMetaTag(name, content)

Dodaje metatag do strony. Metatagi zawarte bezpośrednio w pliku HTML Apps Script są ignorowane. Dozwolone są tylko te metatagi:

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

Parametry

NazwaTypOpis
nameStringWartość atrybutu nazwy metatagu.
contentStringWartość atrybutu content metatagu.

Powrót

HtmlOutput – te dane wyjściowe służą do łańcuchowania.


append(addedContent)

Dodaje nowe treści do treści tego HtmlOutput. Używaj tego tylko w przypadku treści pochodzących z zaufanego źródła, ponieważ nie są one ujęte w znaki ucieczki.

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

Parametry

NazwaTypOpis
addedContentStringTreści do dołączenia.

Powrót

HtmlOutput – te dane wyjściowe służą do łańcuchowania.

Rzuty

Error – jeśli kod HTML jest nieprawidłowy,

Zobacz też


appendUntrusted(addedContent)

Dodaje nowe treści do treści tego HtmlOutput, używając ucieczki kontekstowej.

Ta metoda poprawnie koduje zawartość na podstawie bieżącego stanu HtmlOutput, dzięki czemu wynik jest bezpiecznym ciągiem tekstowym bez znaczników i efektów ubocznych. Używaj tej metody zamiast append, gdy dodajesz treści z nieznanego źródła, np. od użytkownika, aby uniknąć przypadkowego zezwolenia na błąd cross-site scripting (XSS), w którym dołączone treści lub znaczniki powodują nieoczekiwane wykonanie kodu.

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

Parametry

NazwaTypOpis
addedContentStringTreści do dołączenia.

Powrót

HtmlOutput – te dane wyjściowe służą do łańcuchowania.

Rzuty

Error – jeśli kod HTML jest bardzo źle sformatowany,

Zobacz też


asTemplate()

Zwraca HtmlTemplate, który jest obsługiwany przez tę HtmlOutput. Za pomocą tej metody możesz stopniowo tworzyć szablon. Przyszłe zmiany w HtmlOutput będą miały wpływ również na zawartość HtmlTemplate.

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

Powrót

HtmlTemplate – nowy HtmlTemplate.


clear()

Czyści bieżące treści.

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

Powrót

HtmlOutput – te dane wyjściowe służą do łańcuchowania.


getAs(contentType)

Zwraca dane z tego obiektu jako blob przekonwertowany na określony typ treści. Ta metoda dodaje odpowiednie rozszerzenie do nazwy pliku, np. „mójplik.pdf”. Zakłada ona jednak, że część nazwy pliku, która następuje po ostatnim okresie (jeśli w ogóle występuje), to istniejące rozszerzenie, które należy zastąpić. W rezultacie plik „ShoppingList.12.25.2014” zmieni nazwę na „ShoppingList.12.25.pdf”.

Informacje o limitach dziennych konwersji znajdziesz w artykule Limity dotyczące usług Google. Nowo utworzone domeny Google Workspace mogą być tymczasowo objęte bardziej rygorystycznymi limitami.

Parametry

NazwaTypOpis
contentTypeStringTyp MIME, na który ma nastąpić konwersja. W przypadku większości blobów opcja 'application/pdf' jest jedyną prawidłową opcją. W przypadku obrazów w formacie BMP, GIF, JPEG lub PNG prawidłowe są również wartości 'image/bmp', 'image/gif', 'image/jpeg' lub 'image/png'. W przypadku dokumentu w Dokumentach Google możesz też użyć 'text/markdown'.

Powrót

Blob – dane w postaci bloba.


getBlob()

Zwraca dane z tego obiektu jako blob.

Powrót

Blob – dane w postaci bloba.


getContent()

Pobiera zawartość tego HtmlOutput.

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

Powrót

String – wyświetlane treści.


getFaviconUrl()

Pobiera adres URL tagu linku do ikony favicon dodanego do strony przez wywołanie funkcji setFaviconUrl(iconUrl). Tagi linków do favicon zawarte bezpośrednio w pliku HTML Apps Script są ignorowane.

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

Powrót

String – adres URL obrazu favikony.


getHeight()

Pobiera początkową wysokość okna niestandardowego w Dokumentach, Arkuszach lub Formularzach Google. Jeśli HtmlOutput jest opublikowana jako aplikacja internetowa, ta metoda zwraca null. Aby zmienić rozmiar otwartego już okna, wywołaj funkcję google.script.host.setHeight(height) w kodzie po stronie klienta.

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

Powrót

Integer – wysokość w pikselach.


getMetaTags()

Pobiera tablicę obiektów, które reprezentują metatagi dodane do strony przez wywołanie funkcji addMetaTag(name, content). Metatagi zawarte bezpośrednio w pliku HTML Apps Script są ignorowane.

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

Powrót

HtmlOutputMetaTag[] – tablica obiektów reprezentujących metatagi dodane do strony przez wywołanie funkcji addMetaTag(name, content).


getTitle()

Pobiera tytuł strony wyjściowej. Pamiętaj, że element HTML <title> jest ignorowany.

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

Powrót

String – tytuł strony.


getWidth()

Pobiera początkową szerokość okna dialogowego niestandardowego w Dokumentach, Arkuszach lub Formularzach Google. Jeśli HtmlOutput jest opublikowana jako aplikacja internetowa, ta metoda zwraca null. Aby zmienić rozmiar otwartego już okna, wywołaj funkcję google.script.host.setWidth(width) w kodzie po stronie klienta.

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

Powrót

Integer – szerokość w pikselach.


setContent(content)

Określa zawartość tego HtmlOutput.

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

Parametry

NazwaTypOpis
contentStringTreści do wyświetlenia.

Powrót

HtmlOutput – te dane wyjściowe służą do łańcuchowania.

Rzuty

Error – jeśli kod HTML jest nieprawidłowy,


setFaviconUrl(iconUrl)

Dodaje tag linku do ikony favicon na stronie. Tagi linków do favicon dołączone bezpośrednio w pliku HTML AppsScript są ignorowane.

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

Parametry

NazwaTypOpis
iconUrlStringAdres URL obrazu favicon z rozszerzeniem wskazującym typ obrazu.

Powrót

HtmlOutput – te dane wyjściowe służą do łańcuchowania.


setHeight(height)

Ustawia początkową wysokość okna niestandardowego w Dokumentach, Arkuszach lub Formularzach Google. Jeśli HtmlOutput jest opublikowana jako aplikacja internetowa, ta metoda nie ma żadnego wpływu. Aby zmienić rozmiar otwartego już okna, wywołaj funkcję google.script.host.setHeight(height) w kodzie po stronie klienta.

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

Parametry

NazwaTypOpis
heightIntegerNowa wysokość w pikselach; null to wartość domyślna.

Powrót

HtmlOutput – te dane wyjściowe służą do łańcuchowania.


setSandboxMode(mode)

Ta metoda nie ma teraz żadnego wpływu – wcześniej ustawiała wartość sandbox mode używaną w skryptach po stronie klienta. Aby chronić użytkowników przed wyświetlaniem złośliwego kodu HTML lub JavaScript, kod po stronie klienta obsługiwany przez usługę HTML jest wykonywany w piaskownicy bezpieczeństwa, która nakłada na niego ograniczenia. Pierwotnie ta metoda umożliwiała autorom skryptów wybór różnych wersji piaskownicy, ale teraz wszystkie skrypty używają trybu IFRAME niezależnie od ustawionego trybu piaskownicy. Więcej informacji znajdziesz w przewodniku po ograniczeniach w usłudze HTML.

Tryb IFRAME nakłada znacznie mniej ograniczeń niż inne tryby piaskownicy, działa najszybciej, ale nie działa w żadnych starszych przeglądarkach, w tym w Internet Explorerze 9. Tryb piaskownicy można odczytać w skrypcie po stronie klienta, sprawdzając google.script.sandbox.mode. Pamiętaj, że ta właściwość zwraca rzeczywisty tryb na kliencie, który może się różnić od trybu żądanego na serwerze, jeśli żądany tryb nie jest obsługiwany w przeglądarce użytkownika.

<!-- Read the sandbox mode (in a client-side script). -->
<script>
  alert(google.script.sandbox.mode);
</script>

Parametry

NazwaTypOpis
modeSandboxModeTryb piaskownicy, którego chcesz użyć.

Powrót

HtmlOutput – te dane wyjściowe służą do łańcuchowania.


setTitle(title)

Ustawia tytuł strony wyjściowej. W przypadku aplikacji internetowych jest to tytuł całej strony, a w przypadku HtmlOutput wyświetlanego w Arkuszach Google – tytuł okna dialogowego.

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

Parametry

NazwaTypOpis
titleStringNowy tytuł.

Powrót

HtmlOutput – te dane wyjściowe służą do łańcuchowania.


setWidth(width)

Ustawia początkową szerokość okna dialogowego niestandardowego w Dokumentach, Arkuszach lub Formularzach Google. Jeśli HtmlOutput jest opublikowana jako aplikacja internetowa, ta metoda nie ma żadnego wpływu. Aby zmienić rozmiar otwartego już okna, wywołaj funkcję google.script.host.setWidth(width) w kodzie po stronie klienta.

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

Parametry

NazwaTypOpis
widthIntegerNowa szerokość w pikselach; null powoduje użycie wartości domyślnej.

Powrót

HtmlOutput – te dane wyjściowe służą do łańcuchowania.


setXFrameOptionsMode(mode)

Ustawia stan nagłówka X-Frame-Options strony, który kontroluje zapobieganie atakom typu clickjacking.

Ustawienie XFrameOptionsMode.ALLOWALL pozwala każdej witrynie umieścić iframe strony, dlatego deweloper powinien wdrożyć własną ochronę przed kliknięciem podszywanego.

Jeśli skrypt nie ma ustawionego trybu X-Frame-Options, Apps Script używa domyślnie trybu XFrameOptionsMode.DEFAULT.

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

Parametry

NazwaTypOpis
modeXFrameOptionsModeTryb opcji XFrame do ustawienia.

Powrót

HtmlOutput – te dane wyjściowe służą do łańcuchowania.