Class HtmlOutput

HtmlOutput

可通过脚本提供的 HtmlOutput 对象。出于安全方面的考虑 脚本无法直接将 HTML 返回给浏览器。相反,他们必须对其进行清理, 无法执行恶意操作。您可以返回经过清理的 HTML,如下所示:

function doGet() {
  return HtmlService.createHtmlOutput('<b>Hello, world!</b>');
}
HtmlOutput 中的代码可包含嵌入的 JavaScript 和 CSS。(这是标准 用于操控 DOM 的客户端 JavaScript,而不是 Apps 脚本)。所有这些内容都是 使用 iframe 进行沙盒化处理 沙盒。如需了解详情,请参阅 HTML 服务限制指南

方法

方法返回类型简介
addMetaTag(name, content)HtmlOutput向网页添加元标记。
append(addedContent)HtmlOutput将新内容附加到此 HtmlOutput 的内容。
appendUntrusted(addedContent)HtmlOutput使用上下文转义,将新内容附加到此 HtmlOutput 的内容。
asTemplate()HtmlTemplate返回由此 HtmlOutput 支持的 HtmlTemplate
clear()HtmlOutput清除当前内容。
getAs(contentType)Blob将此对象中的数据作为转换为指定内容类型的 blob 返回。
getBlob()Blob将此对象中的数据作为 blob 返回。
getContent()String获取此 HtmlOutput 的内容。
getFaviconUrl()String通过调用 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)

向网页添加元标记。直接包含在 Apps 脚本 HTML 文件中的元标记为 已忽略。只允许使用以下元标记:

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

参数

名称类型说明
nameString元标记的 name 属性的值。
contentString元标记的 content 属性的值。

返回

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

参数

名称类型说明
addedContentString要附加的内容。

返回

HtmlOutput - 此输出,用于链接。

抛出

Error - 如果 HTML 格式不正确

另请参阅


appendUntrusted(addedContent)

使用上下文转义,将新内容附加到此 HtmlOutput 的内容。

此方法会根据 HtmlOutput 的当前状态正确转义内容, 这样,结果就会是一个没有标记或附带影响的安全字符串。请使用 附加,以免添加来自不受信任的来源(例如来自用户)的内容 意外导致了跨站脚本攻击 (XSS) bug,其中您附加的内容或标记 会导致意外的代码执行。

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

参数

名称类型说明
addedContentString要附加的内容。

返回

HtmlOutput - 此输出,用于链接。

抛出

Error - 如果 HTML 的格式不正确

另请参阅


asTemplate()

返回由此 HtmlOutput 支持的 HtmlTemplate。此方法可用于 逐步构建模板。将来对 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)

将此对象中的数据作为转换为指定内容类型的 blob 返回。本次 方法会为文件名添加相应的扩展名,例如“myfile.pdf”。不过, 最后一个句点之后的文件名部分(如果有)假定存在 扩展名。因此,“ShoppingList.12.25.2014”会变为 “ShoppingList.12.25.pdf”。

要查看转化次数的每日配额,请参阅 Google 配额 服务。新创建的 Google Workspace 网域可能会暂时适用更严格的条件 配额。

参数

名称类型说明
contentTypeString要转换为的 MIME 类型。对于大多数 blob,'application/pdf' 为 唯一有效的选项对于 BMP、GIF、JPEG 或 PNG 格式的图片,'image/bmp''image/gif''image/jpeg''image/png' 中的任何一个也 有效。对于 Google 文档,'text/markdown' 也有效。

返回

Blob - 以 blob 形式表示的数据。


getBlob()

将此对象中的数据作为 blob 返回。

返回

Blob - 以 blob 形式表示的数据。


getContent()

获取此 HtmlOutput 的内容。

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

返回

String - 提供的内容。


getFaviconUrl()

通过调用 setFaviconUrl(iconUrl) 获取已添加到页面的网站图标链接标记的网址。直接包含在 Apps 脚本 HTML 文件中的网站图标链接标记包括 已忽略。

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

返回

String - 网站图标图片的网址。


getHeight()

获取自定义对话框在 Google 中的初始高度 文档、表格或表单。如果将 HtmlOutput 发布为 Web 应用,则 方法会返回 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) 获取表示添加到网页的元标记的对象数组。直接包含在 Apps 脚本 HTML 文件中的元标记为 已忽略。

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

获取输出页面的标题。请注意,<title>系统会忽略 HTML 元素。

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

返回

String - 网页的标题。


getWidth()

获取 Google 中自定义对话框的初始宽度 文档、表格或表单。如果将 HtmlOutput 发布为 Web 应用,则 方法会返回 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>');

参数

名称类型说明
contentString要传送的内容。

返回

HtmlOutput - 此输出,用于链接。

抛出

Error - 如果 HTML 格式不正确


setFaviconUrl(iconUrl)

在网页中添加网站图标的链接标记。应用中直接包含的网站图标链接标签 脚本 HTML 文件会被忽略。

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

参数

名称类型说明
iconUrlString网站图标图片的网址,其中包含表示相应图片的图片扩展名 类型。

返回

HtmlOutput - 此输出,用于链接。


setHeight(height)

设置自定义对话框在 Google 中的初始高度 文档、表格或表单。如果将 HtmlOutput 发布为 Web 应用,则 方法将不起作用。要调整已打开的对话框的大小,请调用 google.script.host.setHeight(height)

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

参数

名称类型说明
heightInteger新的高度(以像素为单位);null 会生成默认值。

返回

HtmlOutput - 此输出,用于链接。


setSandboxMode(mode)

此方法现在不起作用 - 之前它会设置用于客户端脚本的 sandbox mode。为了防止向用户显示恶意 HTML 或 由 HTML 服务提供的 JavaScript 客户端代码是在一个安全沙盒中执行, 对代码施加的限制原来,这种方法可以让脚本作者选择 不同版本的沙盒,但现在所有脚本都使用 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>

参数

名称类型说明
modeSandboxMode要使用的沙盒模式。

返回

HtmlOutput - 此输出,用于链接。


setTitle(title)

设置输出页面的标题。对于 Web 应用,这是整个页面的标题,而 对于 Google 表格中显示的 HtmlOutput,这就是对话框标题。

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

参数

名称类型说明
titleString新标题。

返回

HtmlOutput - 此输出,用于链接。


setWidth(width)

设置 Google 中自定义对话框的初始宽度 文档、表格或表单。如果将 HtmlOutput 发布为 Web 应用,则 方法无效。要调整已打开的对话框的大小,请调用 google.script.host.setWidth(width)

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

参数

名称类型说明
widthInteger新宽度(以像素为单位);null 会生成默认值。

返回

HtmlOutput - 此输出,用于链接。


setXFrameOptionsMode(mode)

设置网页的 X-Frame-Options 标头的状态,该标头用于控制点击劫持 预防措施。

设置 XFrameOptionsMode.ALLOWALL 可让任何网站 iframe 网页,因此 开发者应实施自己的保护措施来防范点击劫持。

如果脚本未设置 X-Frame-Options 模式,则 Apps 脚本会使用 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);

参数

名称类型说明
modeXFrameOptionsMode要设置的 XFrame 选项模式。

返回

HtmlOutput - 此输出,用于链接。