Class HtmlOutput

HtmlOutput

Объект 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 Docs, Sheets или Forms.
getMetaTags() HtmlOutputMetaTag[] Получает массив объектов, представляющих метатеги, добавленные на страницу путем вызова addMetaTag(name, content) .
getTitle() String Получает заголовок выходной страницы.
getWidth() Integer Получает начальную ширину настраиваемого диалогового окна в Google Docs, Sheets или Forms.
setContent(content) HtmlOutput Задает содержимое этого HtmlOutput .
setFaviconUrl(iconUrl) HtmlOutput Добавляет тег ссылки для фавикона на страницу.
setHeight(height) HtmlOutput Задает начальную высоту настраиваемого диалогового окна в Документах Google, Таблицах или Формах.
setSandboxMode(mode) HtmlOutput Этот метод теперь не имеет никакого эффекта — ранее он устанавливал sandbox mode используемый для клиентских скриптов.
setTitle(title) HtmlOutput Устанавливает заголовок выходной страницы.
setWidth(width) HtmlOutput Устанавливает начальную ширину настраиваемого диалогового окна в Google Docs, Sheets или Forms.
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». Однако предполагается, что часть имени файла, которая следует за последней точкой (если она есть), является существующим расширением, которое следует заменить. Следовательно, «Список покупок.12.25.2014» становится «Список покупок.12.25.pdf».

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

Параметры

Имя Тип Описание
contentType String Тип MIME для преобразования. Для большинства BLOB '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) . Теги ссылок Favicon, включенные непосредственно в 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 Docs, Sheets или Forms. Если вместо этого 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 Docs, Sheets или Forms. Если вместо этого 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)

Добавляет тег ссылки для фавикона на страницу. Теги ссылок Favicon, включенные непосредственно в 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 Таблицах, это заголовок диалогового окна.

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

Параметры

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

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

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


setWidth(width)

Устанавливает начальную ширину настраиваемого диалогового окна в Google Docs, Sheets или Forms. Если вместо этого 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 , сценарий приложений использует режим 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 — этот вывод для цепочки.