אובייקט HtmlOutput
שניתן להציג מתוך סקריפט. מטעמי אבטחה,
סקריפטים לא יכולים להחזיר HTML ישירות לדפדפן. במקום זאת, הם צריכים לחטא אותו
לא יכול לבצע פעולות זדוניות. אפשר להחזיר HTML שעבר ניקוי באופן הבא:
function doGet() { return HtmlService.createHtmlOutput('<b>Hello, world!</b>'); }
HtmlOutput
יכול לכלול JavaScript ו-CSS מוטמעים. (זה סטנדרטי
JavaScript בצד הלקוח שמשפיע על ה-DOM, ולא על Apps Script). כל התוכן הזה
בארגז חול באמצעות iframe
הרצה בארגז חול (sandboxing). מידע נוסף זמין במדריך להגבלות בשירות HTML.שיטות
שיטה | סוג הערך המוחזר | תיאור קצר |
---|---|---|
addMetaTag(name, content) | HtmlOutput | הוספת מטא תג לדף. |
append(addedContent) | HtmlOutput | מצרף תוכן חדש לתוכן של HtmlOutput . |
appendUntrusted(addedContent) | HtmlOutput | מצרף תוכן חדש לתוכן של HtmlOutput , באמצעות בריחה לפי הקשר. |
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 של הדף, השולט בחטיפת קליקים (clickjacking)
למניעת תרמיות. |
מסמכי תיעוד מפורטים
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 שהומר לסוג התוכן שצוין. הזה method מוסיפה את הסיומת המתאימה לשם הקובץ, לדוגמה, "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' צריך להיות תואם גם
תקין. במסמך של Google Docs, גם 'text/markdown' תקף. |
חזרה
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 של הסקריפט.
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 פועל בארגז חול (Sandbox) לאבטחה
כוללת מגבלות על הקוד. במקור, השיטה הזו אפשרה לכותבי סקריפטים לבחור
בין גרסאות שונות של ארגז החול, אבל עכשיו כל הסקריפטים משתמשים עכשיו במצב IFRAME
בלי קשר למצב ארגז החול שהוגדר. מידע נוסף זמין במדריך להגבלות בשירות HTML.
במצב IFRAME
יש הרבה פחות הגבלות מאשר במצבי Sandbox אחרים,
פועל מהר יותר, אך לא עובד כלל בדפדפנים ישנים מסוימים, כולל 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 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
של הדף, השולט בחטיפת קליקים (clickjacking)
למניעת תרמיות.
ההגדרה XFrameOptionsMode.ALLOWALL
מאפשרת לכל אתר להוסיף ל-iframe את הדף, כך
צריך ליישם הגנה משלו מפני חטיפת קליקים (clickjacking).
אם סקריפט לא מוגדר מצב 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
– הפלט הזה, לשרשור.