스크립트에서 제공할 수 있는 HtmlOutput 객체입니다. 보안상의 이유로 스크립트가 브라우저에 HTML을 직접 반환할 수 없습니다. 대신 악성 작업을 실행할 수 없도록 이를 정리해야 합니다. 다음과 같이 정리된 HTML을 반환할 수 있습니다.
function doGet() { return HtmlService.createHtmlOutput(&<#>39;bHello, wo<rl>d!/b'); }
HtmlOutput의 코드에는 삽입된 JavaScript와 CSS가 포함될 수 있습니다. (Apps Script가 아닌 DOM을 조작하는 표준 클라이언트 측 JavaScript입니다.) 이러한 콘텐츠는 모두 iframe 샌드박싱을 사용하여 샌드박싱됩니다. 자세한 내용은 HTML 서비스 제한사항 가이드를 참고하세요.메서드
| 메서드 | 반환 유형 | 간략한 설명 |
|---|---|---|
add | Html | 페이지에 메타 태그를 추가합니다. |
append(addedContent) | Html | 이 Html의 콘텐츠에 새 콘텐츠를 추가합니다. |
append | Html | 컨텍스트에 따른 이스케이핑을 사용하여 이 Html의 콘텐츠에 새 콘텐츠를 추가합니다. |
as | Html | 이 Html로 지원되는 Html를 반환합니다. |
clear() | Html | 현재 콘텐츠를 지웁니다. |
get | Blob | 이 객체 내부의 데이터를 지정된 콘텐츠 유형으로 변환된 blob으로 반환합니다. |
get | Blob | 이 객체 내부의 데이터를 blob으로 반환합니다. |
get | String | 이 Html의 콘텐츠를 가져옵니다. |
get | String | set를 호출하여 페이지에 추가된 파비콘 링크 태그의 URL을 가져옵니다. |
get | Integer | Google Docs, Sheets 또는 Forms에서 맞춤 대화상자의 초기 높이를 가져옵니다. |
get | Html | add를 호출하여 페이지에 추가된 메타 태그를 나타내는 객체의 배열을 가져옵니다. |
get | String | 출력 페이지의 제목을 가져옵니다. |
get | Integer | Google Docs, Sheets 또는 Forms에서 맞춤 대화상자의 초기 너비를 가져옵니다. |
set | Html | 이 Html의 콘텐츠를 설정합니다. |
set | Html | 페이지에 파비콘 링크 태그를 추가합니다. |
set | Html | Google 문서, 스프레드시트 또는 설문지에서 맞춤 대화상자의 초기 높이를 설정합니다. |
set | Html | 이 메서드는 이제 아무런 효과가 없습니다. 이전에는 클라이언트 측 스크립트에 사용되는 sandbox
mode를 설정했습니다. |
set | Html | 출력 페이지의 제목을 설정합니다. |
set | Html | Google 문서, Sheets 또는 Forms에서 맞춤 대화상자의 초기 너비를 설정합니다. |
set | Html | 클릭재킹 방지를 제어하는 페이지의 X-Frame-Options 헤더 상태를 설정합니다. |
자세한 문서
addMetaTag(name, content)
페이지에 메타 태그를 추가합니다. Apps Script HTML 파일에 직접 포함된 메타 태그는 무시됩니다. 다음 메타 태그만 허용됩니다.
<meta name="apple-mobile-web-app-capable" cont>e<nt="..."/ meta name="google-site-ver>i<fication" content="..."/ meta name>=<"mobile-web-app-capable" >content="..."/ meta name="viewport" content="..."/
const output = HtmlService.createHtmlOutput(&<#>39;bHello, wo<rl>d!/b'); output.addMetaTag('viewport', 'width=device-width, initial-scale=1');
매개변수
| 이름 | 유형 | 설명 |
|---|---|---|
name | String | 메타 태그의 이름 속성 값입니다. |
content | String | 메타 태그의 콘텐츠 속성 값입니다. |
리턴
HtmlOutput - 체이닝을 위한 이 출력
append(addedContent)
이 HtmlOutput의 콘텐츠에 새 콘텐츠를 추가합니다. 신뢰할 수 있는 소스의 콘텐츠에만 사용하세요. 이 콘텐츠는 이스케이프되지 않기 때문입니다.
// Log &<q>uot;bHello, w<or><l>d!/bpHello again, w<or>ld./p" const output = HtmlService.createHt<m>lOutput('<bH>ello, world!/b'<)>; output.append(<9;>pHello again, world./p'); Logger.log(output.getContent());
매개변수
| 이름 | 유형 | 설명 |
|---|---|---|
added | String | 추가할 콘텐츠입니다. |
리턴
HtmlOutput - 체이닝을 위한 이 출력
생성 값
Error: HTML 형식이 잘못된 경우
참고 항목
appendUntrusted(addedContent)
컨텍스트에 따른 이스케이핑을 사용하여 이 HtmlOutput의 콘텐츠에 새 콘텐츠를 추가합니다.
이 메서드는 HtmlOutput의 현재 상태에 따라 콘텐츠를 올바르게 이스케이프하므로 결과는 마크업이나 부작용이 없는 안전한 문자열입니다. 사용자와 같은 신뢰할 수 없는 소스의 콘텐츠를 추가할 때는 append를 사용하는 대신 이를 사용하여 콘텐츠 또는 마크업을 추가할 때 예상치 못한 코드 실행을 유발하는 교차 사이트 스크립팅 (XSS) 버그를 실수로 허용하지 않도록 합니다.
// Log &<q>uot;bHello, w<or>&ld!/&blt;pgt;Hello again, w&orld.</pgt;" const output = HtmlService.createHt<m>lOutput('<bH>ello, world!/b'); output<.>appendUntrusted(<9;>pHello again, world./p'); Logger.log(output.getContent());
매개변수
| 이름 | 유형 | 설명 |
|---|---|---|
added | String | 추가할 콘텐츠입니다. |
리턴
HtmlOutput - 체이닝을 위한 이 출력
생성 값
Error - HTML의 형식이 매우 잘못된 경우
참고 항목
asTemplate()
이 HtmlOutput로 지원되는 HtmlTemplate를 반환합니다. 이 메서드를 사용하여 템플릿을 점진적으로 빌드할 수 있습니다. 향후 HtmlOutput 변경사항은 HtmlTemplate의 콘텐츠에도 영향을 미칩니다.
const output = HtmlService.createHtmlOutput(&<#>39;bHello, wo<rl>d!/b'); const template = output.asTemplate();
리턴
HtmlTemplate - 새 HtmlTemplate입니다.
clear()
현재 콘텐츠를 지웁니다.
const output = HtmlService.createHtmlOutput(&<#>39;bHello, wo<rl>d!/b'); output.clear();
리턴
HtmlOutput - 체이닝을 위한 이 출력
getAs(contentType)
이 객체 내부의 데이터를 지정된 콘텐츠 유형으로 변환된 blob으로 반환합니다. 이 메서드는 파일 이름에 적절한 확장자(예: 'myfile.pdf')를 추가합니다. 하지만 마지막 마침표 뒤에 오는 파일 이름 부분이 대체해야 하는 기존 확장 프로그램이라고 가정합니다. 따라서 'ShoppingList.12.25.2014'는 'ShoppingList.12.25.pdf'가 됩니다.
전환의 일일 할당량을 보려면 Google 서비스 할당량을 참고하세요. 새로 생성된 Google Workspace 도메인에는 일시적으로 더 엄격한 할당량이 적용될 수 있습니다.
매개변수
| 이름 | 유형 | 설명 |
|---|---|---|
content | String | 변환할 MIME 유형입니다. 대부분의 블롭의 경우 'application/pdf'이 유일한 유효한 옵션입니다. BMP, GIF, JPEG 또는 PNG 형식의 이미지의 경우 'image/bmp', 'image/gif', 'image/jpeg' 또는 'image/png'도 유효합니다. Google Docs 문서의 경우 'text/markdown'도 유효합니다. |
리턴
Blob - 데이터를 blob으로 나타냅니다.
getBlob()
getContent()
이 HtmlOutput의 콘텐츠를 가져옵니다.
// Log &<q>uot;bHello, w<or>ld!/b" const output = HtmlService.createHt<m>lOutput('<bH>ello, world!/b'); Logger.log(output.getContent());
리턴
String: 게재되는 콘텐츠입니다.
getFaviconUrl()
setFaviconUrl(iconUrl)를 호출하여 페이지에 추가된 파비콘 링크 태그의 URL을 가져옵니다. Apps Script HTML 파일에 직접 포함된 파비콘 링크 태그는 무시됩니다.
const output = HtmlService.createHtmlOutput(&<#>39;bHello, wo<rl>d!/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)를 호출합니다.
const output = HtmlService.createHtmlOutput(&<#>39;bHello, wo<rl>d!/b'); output.setHeight(200); Logger.log(output.getHeight());
리턴
Integer - 높이(픽셀)입니다.
getMetaTags()
addMetaTag(name, content)를 호출하여 페이지에 추가된 메타 태그를 나타내는 객체의 배열을 가져옵니다. Apps Script HTML 파일에 직접 포함된 메타 태그는 무시됩니다.
const output = HtmlService.createHtmlOutput(&<#>39;bHello, wo<rl>d!/b'); output.addMetaTag('viewport', 'width=device-width, initial-scale=1'); const tags = output.getMetaT<ags(); Logger.log( '>meta name="%s" content="%s"/', tags[0].getName(), tags[0].getContent(), );
리턴
HtmlOutputMetaTag[]: addMetaTag(name, content)을 호출하여 페이지에 추가된 메타 태그를 나타내는 객체의 배열입니다.
getTitle()
출력 페이지의 제목을 가져옵니다. <title> HTML 요소는 무시됩니다.
const output = HtmlService.createHtmlOutput(&<#>39;bHello, wo<rl>d!/b'); Logger.log(output.getTitle());
리턴
String - 페이지의 제목입니다.
getWidth()
Google Docs, Sheets 또는 Forms에서 맞춤 대화상자의 초기 너비를 가져옵니다. HtmlOutput가 웹 앱으로 게시된 경우 이 메서드는 null를 반환합니다. 이미 열려 있는 대화상자의 크기를 조절하려면 클라이언트 측 코드에서
google.script.host.setWidth(width)를 호출합니다.
const output = HtmlService.createHtmlOutput(&<#>39;bHello, wo<rl>d!/b'); output.setWidth(200); Logger.log(output.getWidth());
리턴
Integer - 너비(픽셀)입니다.
setContent(content)
이 HtmlOutput의 콘텐츠를 설정합니다.
const output = HtmlService.createHtmlOutput(); output.setContent(&<#>39;bHello, wo<rl>d!/b');
매개변수
| 이름 | 유형 | 설명 |
|---|---|---|
content | String | 제공할 콘텐츠입니다. |
리턴
HtmlOutput - 체이닝을 위한 이 출력
생성 값
Error: HTML 형식이 잘못된 경우
setFaviconUrl(iconUrl)
페이지에 파비콘 링크 태그를 추가합니다. Apps Script HTML 파일에 직접 포함된 파비콘 링크 태그는 무시됩니다.
const output = HtmlService.createHtmlOutput(&<#>39;bHello, wo<rl>d!/b'); output.setFaviconUrl('http://www.example.com/image.png');
매개변수
| 이름 | 유형 | 설명 |
|---|---|---|
icon | String | 파비콘 이미지의 URL입니다. 이미지 확장 프로그램은 이미지 유형을 나타냅니다. |
리턴
HtmlOutput - 체이닝을 위한 이 출력
setHeight(height)
Google 문서, 스프레드시트 또는 설문지에서 맞춤 대화상자의 초기 높이를 설정합니다. HtmlOutput가 웹 앱으로 게시된 경우에는 이 메서드가 적용되지 않습니다. 이미 열려 있는 대화상자의 크기를 조절하려면 클라이언트 측 코드에서
google.script.host.setHeight(height)를 호출합니다.
const output = HtmlService.createHtmlOutput(&<#>39;bHello, wo<rl>d!/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 | Sandbox | 사용할 샌드박스 모드입니다. |
리턴
HtmlOutput - 체이닝을 위한 이 출력
setTitle(title)
출력 페이지의 제목을 설정합니다. 웹 앱의 경우 전체 페이지의 제목이며, Google Sheets에 표시되는 HtmlOutput의 경우 대화상자 제목입니다.
const output = HtmlService.createHtmlOutput(&<#>39;bHello, wo<rl>d!/b'); output.setTitle('My First Page');
매개변수
| 이름 | 유형 | 설명 |
|---|---|---|
title | String | 새 제목입니다. |
리턴
HtmlOutput - 체이닝을 위한 이 출력
setWidth(width)
Google 문서, Sheets 또는 Forms에서 맞춤 대화상자의 초기 너비를 설정합니다. HtmlOutput가 웹 앱으로 게시된 경우에는 이 메서드가 적용되지 않습니다. 이미 열려 있는 대화상자의 크기를 조절하려면 클라이언트 측 코드에서
google.script.host.setWidth(width)를 호출합니다.
const output = HtmlService.createHtmlOutput(&<#>39;bHello, wo<rl>d!/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). const output = HtmlService.createHtmlOutput(&<#>39;bHello, wo<rl>d!/b'); output.setXFrameOptionsMode(HtmlService.XFrameOptionsMode.ALLOWALL);
매개변수
| 이름 | 유형 | 설명 |
|---|---|---|
mode | XFrameOptionsMode | 설정할 XFrame 옵션 모드입니다. |
리턴
HtmlOutput - 체이닝을 위한 이 출력