Class HtmlOutput

HTMLВывод

Объект HtmlOutput , который можно обслуживать из сценария. Из соображений безопасности сценарии не могут напрямую возвращать HTML в браузер. Вместо этого они должны дезинфицировать его, чтобы он не мог выполнять вредоносные действия. Вы можете вернуть очищенный HTML следующим образом:

function doGet() {
  return HtmlService.createHtmlOutput('<b>Hello, world!</b>');
}
Код в HtmlOutput может включать встроенный JavaScript и CSS. (Это стандартный клиентский JavaScript, который управляет DOM, а не скрипт приложений). Весь этот контент помещается в изолированную программную среду с помощью изолированной программной среды iframe . Дополнительную информацию см. в руководстве по ограничениям в службе HTML .

Методы

Метод Тип возврата Краткое описание
addMetaTag(name, content) HtmlOutput Добавляет метатег на страницу.
append(addedContent) HtmlOutput Добавляет новое содержимое к содержимому этого HtmlOutput .
appendUntrusted(addedContent) HtmlOutput Добавляет новое содержимое к содержимому этого HtmlOutput , используя контекстное экранирование.
asTemplate() HtmlTemplate Возвращает HtmlTemplate , поддерживаемый этим HtmlOutput .
clear() HtmlOutput Очищает текущий контент.
getAs(contentType) Blob Верните данные внутри этого объекта в виде большого двоичного объекта, преобразованного в указанный тип контента.
getBlob() Blob Верните данные внутри этого объекта в виде большого двоичного объекта.
getContent() String Получает содержимое этого HtmlOutput .
getFaviconUrl() String Получает URL-адрес тега ссылки на значок значка, добавленного на страницу, путем вызова setFaviconUrl(iconUrl) .
getHeight() Integer Получает начальную высоту настраиваемого диалогового окна в Документах, Таблицах или Формах Google.
getMetaTags() HtmlOutputMetaTag[] Получает массив объектов, представляющих метатеги, добавленные на страницу с помощью вызова addMetaTag(name, content) .
getTitle() String Получает заголовок выходной страницы.
getWidth() Integer Получает начальную ширину настраиваемого диалогового окна в Документах, Таблицах или Формах Google.
setContent(content) HtmlOutput Устанавливает содержимое этого HtmlOutput .
setFaviconUrl(iconUrl) HtmlOutput Добавляет на страницу тег ссылки для значка.
setHeight(height) HtmlOutput Устанавливает начальную высоту пользовательского диалогового окна в Документах, Таблицах или Формах Google.
setSandboxMode(mode) HtmlOutput Этот метод теперь не имеет никакого эффекта — раньше он устанавливал sandbox mode , используемый для клиентских скриптов.
setTitle(title) HtmlOutput Устанавливает заголовок выходной страницы.
setWidth(width) HtmlOutput Устанавливает начальную ширину пользовательского диалогового окна в Документах, Таблицах или Формах Google.
setXFrameOptionsMode(mode) HtmlOutput Устанавливает состояние заголовка X-Frame-Options страницы, который управляет предотвращением кликджекинга.

Подробная документация

addMetaTag(name, content)

Добавляет метатег на страницу. Метатеги, включенные непосредственно в HTML-файл Apps Script, игнорируются. Разрешены только следующие метатеги:

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

Параметры

Имя Тип Описание
name String Значение атрибута имени метатега.
content String Значение атрибута содержимого метатега.

Возвращаться

HtmlOutput — этот вывод для цепочки.


append(addedContent)

Добавляет новое содержимое к содержимому этого HtmlOutput . Используйте это только для содержимого из надежного источника, поскольку оно не экранируется.

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

Параметры

Имя Тип Описание
addedContent String Добавляемый контент.

Возвращаться

HtmlOutput — этот вывод для цепочки.

Броски

Error — если HTML имеет неправильный формат.

Смотрите также


appendUntrusted(addedContent)

Добавляет новое содержимое к содержимому этого HtmlOutput , используя контекстное экранирование.

Этот метод правильно экранирует содержимое на основе текущего состояния HtmlOutput , поэтому результатом является безопасная строка без разметки или побочных эффектов. Используйте это вместо использования добавления всякий раз, когда вы добавляете контент из ненадежного источника, например от пользователя, чтобы избежать случайной ошибки межсайтового скриптинга (XSS), когда добавляемый вами контент или разметка приводит к неожиданному выполнению кода.

// Log "<b>Hello, world!</b>&lt;p&gt;Hello again, world.&lt;/p&gt;"
var output = HtmlService.createHtmlOutput('<b>Hello, world!</b>');
output.appendUntrusted('<p>Hello again, world.</p>');
Logger.log(output.getContent());

Параметры

Имя Тип Описание
addedContent String Добавляемый контент.

Возвращаться

HtmlOutput — этот вывод для цепочки.

Броски

Error — если HTML очень неправильный.

Смотрите также


asTemplate()

Возвращает HtmlTemplate , поддерживаемый этим HtmlOutput . Этот метод можно использовать для постепенного создания шаблона. Будущие изменения в HtmlOutput также влияют на содержимое HtmlTemplate .

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

Возвращаться

HtmlTemplate — новый HtmlTemplate .


clear()

Очищает текущий контент.

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

Возвращаться

HtmlOutput — этот вывод для цепочки.


getAs(contentType)

Верните данные внутри этого объекта в виде большого двоичного объекта, преобразованного в указанный тип контента. Этот метод добавляет к имени файла соответствующее расширение, например «myfile.pdf». Однако предполагается, что часть имени файла, следующая за последней точкой (если таковая имеется), является существующим расширением, которое следует заменить. Следовательно, «Список покупок.25.12.2014» становится «Список покупок.12.25.pdf».

Чтобы просмотреть ежедневные квоты на конверсии, см. Квоты для сервисов Google . На вновь созданные домены Google Workspace могут временно распространяться более строгие квоты.

Параметры

Имя Тип Описание
contentType String Тип MIME, в который требуется преобразовать. Для большинства больших двоичных объектов единственным допустимым вариантом является 'application/pdf' . Для изображений в формате BMP, GIF, JPEG или PNG также допустимо любое из 'image/bmp' , 'image/gif' , 'image/jpeg' или 'image/png' .

Возвращаться

Blob — данные в виде большого двоичного объекта.


getBlob()

Верните данные внутри этого объекта в виде большого двоичного объекта.

Возвращаться

Blob — данные в виде большого двоичного объекта.


getContent()

Получает содержимое этого HtmlOutput .

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

Возвращаться

String — обслуживаемый контент.


getFaviconUrl()

Получает URL-адрес тега ссылки на значок значка, добавленного на страницу, путем вызова setFaviconUrl(iconUrl) . Теги ссылок на значок значка, включенные непосредственно в HTML-файл Apps Script, игнорируются.

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

Возвращаться

String — URL-адрес изображения значка.


getHeight()

Получает начальную высоту настраиваемого диалогового окна в Документах, Таблицах или Формах Google. Если вместо этого HtmlOutput публикуется как веб-приложение, этот метод возвращает значение null . Чтобы изменить размер уже открытого диалогового окна, вызовите google.script.host.setHeight(height) в клиентском коде.

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

Возвращаться

Integer — Высота в пикселях.


getMetaTags()

Получает массив объектов, представляющих метатеги, добавленные на страницу с помощью вызова addMetaTag(name, content) . Метатеги, включенные непосредственно в HTML-файл Apps Script, игнорируются.

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

Возвращаться

HtmlOutputMetaTag[] — Массив объектов, представляющих метатеги, добавленные на страницу с помощью вызова addMetaTag(name, content) .


getTitle()

Получает заголовок выходной страницы. Обратите внимание, что HTML-элемент <title> игнорируется.

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

Возвращаться

String — заголовок страницы.


getWidth()

Получает начальную ширину настраиваемого диалогового окна в Документах, Таблицах или Формах Google. Если вместо этого HtmlOutput публикуется как веб-приложение, этот метод возвращает значение null . Чтобы изменить размер уже открытого диалогового окна, вызовите google.script.host.setWidth(width) в клиентском коде.

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

Возвращаться

Integer — Ширина в пикселях.


setContent(content)

Устанавливает содержимое этого HtmlOutput .

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

Параметры

Имя Тип Описание
content String Контент для обслуживания.

Возвращаться

HtmlOutput — этот вывод для цепочки.

Броски

Error — если HTML имеет неправильный формат.


setFaviconUrl(iconUrl)

Добавляет на страницу тег ссылки для значка. Теги ссылок на значок значка, включенные непосредственно в HTML-файл Apps Script, игнорируются.

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

Параметры

Имя Тип Описание
iconUrl String URL-адрес изображения значка с расширением изображения, указывающим тип изображения.

Возвращаться

HtmlOutput — этот вывод для цепочки.


setHeight(height)

Устанавливает начальную высоту пользовательского диалогового окна в Документах, Таблицах или Формах Google. Если вместо этого HtmlOutput публикуется как веб-приложение, этот метод не имеет никакого эффекта. Чтобы изменить размер уже открытого диалогового окна, вызовите google.script.host.setHeight(height) в клиентском коде.

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

Параметры

Имя Тип Описание
height Integer Новая высота в пикселях; null приводит к значению по умолчанию.

Возвращаться

HtmlOutput — этот вывод для цепочки.


setSandboxMode(mode)

Этот метод теперь не имеет никакого эффекта — раньше он устанавливал sandbox mode , используемый для клиентских скриптов. Чтобы защитить пользователей от вредоносного HTML или JavaScript, клиентский код, передаваемый из службы HTML, выполняется в изолированной программной среде безопасности, которая накладывает ограничения на код. Первоначально этот метод позволял авторам сценариев выбирать между различными версиями песочницы, но теперь все сценарии теперь используют режим IFRAME независимо от того, какой режим песочницы установлен. Дополнительную информацию см. в руководстве по ограничениям в службе HTML .

Режим IFRAME накладывает гораздо меньше ограничений, чем другие режимы песочницы, и работает быстрее всего, но вообще не работает в некоторых старых браузерах, включая Internet Explorer 9. Режим песочницы можно прочитать в сценарии на стороне клиента, проверив google.script.sandbox.mode . Обратите внимание, что это свойство возвращает фактический режим на клиенте, который может отличаться от режима, запрошенного на сервере, если запрошенный режим не поддерживается браузером пользователя.

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

Параметры

Имя Тип Описание
mode SandboxMode Используемый режим песочницы.

Возвращаться

HtmlOutput — этот вывод для цепочки.


setTitle(title)

Устанавливает заголовок выходной страницы. Для веб-приложений это заголовок всей страницы, а для HtmlOutput отображаемого в Google Sheets, это заголовок диалога.

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

Параметры

Имя Тип Описание
title String Новое название.

Возвращаться

HtmlOutput — этот вывод для цепочки.


setWidth(width)

Устанавливает начальную ширину пользовательского диалогового окна в Документах, Таблицах или Формах Google. Если вместо этого HtmlOutput публикуется как веб-приложение, этот метод не имеет никакого эффекта. Чтобы изменить размер уже открытого диалогового окна, вызовите google.script.host.setWidth(width) в клиентском коде.

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

Параметры

Имя Тип Описание
width Integer Новая ширина в пикселях; null приводит к значению по умолчанию.

Возвращаться

HtmlOutput — этот вывод для цепочки.


setXFrameOptionsMode(mode)

Устанавливает состояние заголовка X-Frame-Options страницы, который управляет предотвращением кликджекинга.

Установка XFrameOptionsMode.ALLOWALL позволяет любому сайту использовать iframe для страницы, поэтому разработчик должен реализовать собственную защиту от кликджекинга.

Если сценарий не устанавливает режим X-Frame-Options , Apps Script использует режим 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);

Параметры

Имя Тип Описание
mode XFrameOptionsMode Режим опций XFrame, который нужно установить.

Возвращаться

HtmlOutput — этот вывод для цепочки.