可从脚本提供的 Html
对象。出于安全考虑,脚本无法直接将 HTML 返回给浏览器。相反,他们必须对其进行排错,以免其执行恶意操作。您可以返回经过净化的 HTML,如下所示:
function doGet() { return HtmlService.createHtmlOutput('<b>Hello, world!</b>'); }
Html Output
中的代码可以包含嵌入的 JavaScript 和 CSS。(这是用于操控 DOM 的标准客户端 JavaScript,而非 Apps Script)。所有这些内容都使用 iframe 沙盒进行沙盒化处理。如需了解详情,请参阅 HTML 服务限制指南。方法
详细文档
add Meta Tag(name, content)
向网页添加元标记。系统会忽略直接在 Apps Script 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="..."/>
const output = HtmlService.createHtmlOutput('<b>Hello, world!</b>'); output.addMetaTag('viewport', 'width=device-width, initial-scale=1');
参数
名称 | 类型 | 说明 |
---|---|---|
name | String | 元标记的 name 属性的值。 |
content | String | 元标记的 content 属性的值。 |
返回
Html
- 此输出,用于链式调用。
append(addedContent)
将新内容附加到此 Html
的内容。请仅对来自可信来源的内容使用此属性,因为它未经转义。
// 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());
参数
名称 | 类型 | 说明 |
---|---|---|
added | String | 要附加的内容。 |
返回
Html
- 此输出,用于链式调用。
抛出
Error
- 如果 HTML 格式错误
另请参阅
append Untrusted(addedContent)
使用上下文转义将新内容附加到此 Html
的内容。
此方法会根据 Html
的当前状态正确转义内容,以便生成不含标记或副作用的安全字符串。每当您要添加来自不可信来源(例如用户)的内容时,请使用此方法,而不是使用 append 方法,以免意外允许出现跨站脚本攻击 (XSS) 错误,即您附加的内容或标记导致意外代码执行。
// Log "<b>Hello, world!</b><p>Hello again, world.</p>" const output = HtmlService.createHtmlOutput('<b>Hello, world!</b>'); output.appendUntrusted('<p>Hello again, world.</p>'); Logger.log(output.getContent());
参数
名称 | 类型 | 说明 |
---|---|---|
added | String | 要附加的内容。 |
返回
Html
- 此输出,用于链式调用。
抛出
Error
- 如果 HTML 格式非常不当
另请参阅
as Template()
返回由此 Html
支持的 Html
。此方法可用于增量构建模板。对 Html
进行的未来更改也会影响 Html
的内容。
const output = HtmlService.createHtmlOutput('<b>Hello, world!</b>'); const template = output.asTemplate();
返回
Html
- 新的 Html
。
clear()
清除当前内容。
const output = HtmlService.createHtmlOutput('<b>Hello, world!</b>'); output.clear();
返回
Html
- 此输出,用于链式调用。
get As(contentType)
将此对象内的数据作为转换为指定内容类型的 blob 返回。此方法会向文件名添加相应的扩展名,例如“myfile.pdf”。不过,它假定文件名最后一个英文句点(如果有)后面的部分是应替换的现有扩展名。因此,“ShoppingList.12.25.2014”会变为“ShoppingList.12.25.pdf”。
如需查看转化每日配额,请参阅 Google 服务的配额。新创建的 Google Workspace 网域可能会暂时受到更严格的配额限制。
参数
名称 | 类型 | 说明 |
---|---|---|
content | String | 要转换到的 MIME 类型。对于大多数 blob,'application/pdf' 是唯一有效的选项。对于 BMP、GIF、JPEG 或 PNG 格式的图片,'image/bmp' 、'image/gif' 、'image/jpeg' 或 'image/png' 中的任何一种也有效。对于 Google 文档,'text/markdown' 也有效。 |
返回
Blob
- 数据(以 blob 的形式)。
get Blob()
get Content()
获取此 Html
的内容。
// Log "<b>Hello, world!</b>" const output = HtmlService.createHtmlOutput('<b>Hello, world!</b>'); Logger.log(output.getContent());
返回
String
- 要投放的内容。
get Favicon Url()
通过调用 set
获取添加到网页的网站图标链接标记的网址。系统会忽略直接在 Apps Script HTML 文件中包含的图标链接标记。
const output = HtmlService.createHtmlOutput('<b>Hello, world!</b>'); output.setFaviconUrl('http://www.example.com/image.png'); Logger.log(output.getFaviconUrl());
返回
String
- 网站图标图片的网址。
get Height()
获取 Google 文档、表格或表单中自定义对话框的初始高度。如果 Html
改为以 Web 应用的形式发布,此方法会返回 null
。如需调整已打开的对话框的大小,请在客户端代码中调用
google.script.host.setHeight(height)
。
const output = HtmlService.createHtmlOutput('<b>Hello, world!</b>'); output.setHeight(200); Logger.log(output.getHeight());
返回
Integer
- 高度(以像素为单位)。
get Meta Tags()
获取一个对象数组,该数组表示通过调用 add
添加到网页的元标记。系统会忽略直接在 Apps Script HTML 文件中添加的元标记。
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(), );
返回
Html
- 一组对象,表示通过调用 add
添加到网页的元标记。
get Title()
获取输出页面的标题。请注意,<title> HTML 元素会被忽略。
const output = HtmlService.createHtmlOutput('<b>Hello, world!</b>'); Logger.log(output.getTitle());
返回
String
- 网页的标题。
get Width()
获取 Google 文档、表格或表单中自定义对话框的初始宽度。如果 Html
改为以 Web 应用的形式发布,此方法会返回 null
。如需调整已打开的对话框的大小,请在客户端代码中调用
google.script.host.setWidth(width)
。
const output = HtmlService.createHtmlOutput('<b>Hello, world!</b>'); output.setWidth(200); Logger.log(output.getWidth());
返回
Integer
- 宽度(以像素为单位)。
set Content(content)
设置此 Html
的内容。
const output = HtmlService.createHtmlOutput(); output.setContent('<b>Hello, world!</b>');
参数
名称 | 类型 | 说明 |
---|---|---|
content | String | 要投放的内容。 |
返回
Html
- 此输出,用于链式调用。
抛出
Error
- 如果 HTML 格式错误
set Favicon Url(iconUrl)
向网页添加了用于显示 Favicon 的链接标记。系统会忽略直接在 Apps Script HTML 文件中包含的图标链接标记。
const output = HtmlService.createHtmlOutput('<b>Hello, world!</b>'); output.setFaviconUrl('http://www.example.com/image.png');
参数
名称 | 类型 | 说明 |
---|---|---|
icon | String | 网站图标图片的网址,图片扩展名表示图片类型。 |
返回
Html
- 此输出,用于链式调用。
set Height(height)
设置 Google 文档、表格或表单中的自定义对话框的初始高度。如果 Html
改为以 Web 应用的形式发布,则此方法不会产生任何影响。如需调整已打开的对话框的大小,请在客户端代码中调用
google.script.host.setHeight(height)
。
const output = HtmlService.createHtmlOutput('<b>Hello, world!</b>'); output.setHeight(200);
参数
名称 | 类型 | 说明 |
---|---|---|
height | Integer | 新高度(以像素为单位);null 会导致使用默认值。 |
返回
Html
- 此输出,用于链式调用。
set Sandbox Mode(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 | Sandbox | 要使用的沙盒模式。 |
返回
Html
- 此输出,用于链式调用。
set Title(title)
设置输出页面的标题。对于 Web 应用,这是整个网页的标题;对于 Google 表格中显示的 Html
,这是对话框标题。
const output = HtmlService.createHtmlOutput('<b>Hello, world!</b>'); output.setTitle('My First Page');
参数
名称 | 类型 | 说明 |
---|---|---|
title | String | 新标题。 |
返回
Html
- 此输出,用于链式调用。
set Width(width)
设置 Google 文档、表格或表单中自定义对话框的初始宽度。如果 Html
改为以 Web 应用的形式发布,则此方法不会产生任何影响。如需调整已打开的对话框的大小,请在客户端代码中调用
google.script.host.setWidth(width)
。
const output = HtmlService.createHtmlOutput('<b>Hello, world!</b>'); output.setWidth(200);
参数
名称 | 类型 | 说明 |
---|---|---|
width | Integer | 新的宽度(以像素为单位);null 会导致使用默认值。 |
返回
Html
- 此输出,用于链式调用。
set XFrame Options Mode(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). const output = HtmlService.createHtmlOutput('<b>Hello, world!</b>'); output.setXFrameOptionsMode(HtmlService.XFrameOptionsMode.ALLOWALL);
参数
名称 | 类型 | 说明 |
---|---|---|
mode | XFrameOptionsMode | 要设置的 XFrame 选项模式。 |
返回
Html
- 此输出,用于链式调用。