אובייקט HtmlOutput
שניתן להצגה מסקריפט. מטעמי אבטחה, סקריפטים לא יכולים להחזיר HTML ישירות לדפדפן. במקום זאת, עליהם לחטא אותו כך שלא יוכל לבצע פעולות זדוניות. ניתן להחזיר HTML שעבר ניקוי באופן הבא:
function doGet() { return HtmlService.createHtmlOutput('<b>Hello, world!</b>'); }הקוד ב-
HtmlOutput
יכול לכלול JavaScript ו-CSS מוטמעים. (זהו JavaScript סטנדרטי בצד הלקוח שמבצע מניפולציה ב-DOM, ולא ב-Apps Script). כל התוכן הזה נמצא בארגז חול באמצעות הרצה בארגז חול (sandboxing) של iframe. למידע נוסף, ניתן לעיין במדריך להגבלות בשירות HTML.שיטות
שיטה | סוג הערך שמוחזר | תיאור קצר |
---|---|---|
addMetaTag(name, content) | HtmlOutput | הוספת מטא תג לדף. |
append(addedContent) | HtmlOutput | צירוף תוכן חדש לתוכן של HtmlOutput . |
appendUntrusted(addedContent) | HtmlOutput | מצרף תוכן חדש לתוכן של HtmlOutput זה, באמצעות escape לפי הקשר. |
asTemplate() | HtmlTemplate | הפונקציה מחזירה HtmlTemplate המגובה על ידי HtmlOutput . |
clear() | HtmlOutput | ניקוי התוכן הנוכחי. |
getAs(contentType) | Blob | החזרת הנתונים שבתוך האובייקט הזה כ-blob שהומר לסוג התוכן שצוין. |
getBlob() | Blob | החזרת הנתונים שבתוך האובייקט הזה כ-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 Docs, Sheets או Forms. |
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
. השתמשו באפשרות הזו רק עבור תוכן ממקור מהימן, כי לא מתבצעת בו escape.
// 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
זה, באמצעות escape לפי הקשר.
השיטה הזו מסמנים כראוי תוכן בהתאם למצב הנוכחי של 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)
החזרת הנתונים שבתוך האובייקט הזה כ-blob שהומר לסוג התוכן שצוין. השיטה הזו מוסיפה את הסיומת המתאימה לשם הקובץ, לדוגמה, 'myfile.pdf'. עם זאת, ההנחה היא שהחלק שמופיע בשם הקובץ אחרי הנקודה האחרונה (אם יש כזה) הוא תוסף קיים שצריך להחליף. בעקבות זאת, הערך "ShoppingList.12.25.2014" הופך ל-"ShoppingList.12.25.pdf".
במאמר מכסות לשירותי Google תוכלו לראות את המכסות היומיות להמרות. באופן זמני, דומיינים חדשים ב-Google Workspace עשויים להיות כפופים למכסות מחמירות יותר.
פרמטרים
שם | תיאור | התיאור |
---|---|---|
contentType | String | סוג ה-MIME שאליו יש להמיר. ברוב ה-blobs, 'application/pdf' היא
האפשרות החוקית היחידה. עבור תמונות בפורמט BMP, GIF, JPEG או PNG, ניתן גם להשתמש בכל אחד מהערכים 'image/bmp' , 'image/gif' , 'image/jpeg' או 'image/png' . |
החזרות
Blob
– הנתונים כ-blob.
getBlob()
getContent()
הפונקציה מקבלת את התוכן של HtmlOutput
.
// Log "<b>Hello, world!</b>" var output = HtmlService.createHtmlOutput('<b>Hello, world!</b>'); Logger.log(output.getContent());
החזרות
String
- התוכן שמוצג.
getFaviconUrl()
הפונקציה מקבלת את כתובת ה-URL של תג קישור של סמל אתר שנוסף לדף באמצעות קריאה ל-setFaviconUrl(iconUrl)
. המערכת תתעלם מתגי קישור של סמל אתר שנכללים ישירות בקובץ 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()
הפונקציה מקבלת את הכותרת של דף הפלט. לתשומת ליבכם: המערכת מתעלמת מהרכיב <title> של ה-HTML.
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)
הוספת תג קישור עבור סמל אתר לדף. המערכת מתעלמת מתגי קישור של סמל אתר שנכללים ישירות בקובץ 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 Docs, Sheets או Forms. אם השיטה 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. ניתן לקרוא את מצב ה-Sandbox בסקריפט בצד הלקוח על ידי בדיקת 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 Sheets זו הכותרת של תיבת הדו-שיח.
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
, ב-Apps Script ייעשה שימוש במצב 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
– הפלט הזה, לשרשור.