Объект 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><p>Hello again, world.</p>" 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
— этот вывод для цепочки.