אובייקט Html
שאפשר להציג מסקריפט. מטעמי אבטחה, סקריפטים לא יכולים להחזיר HTML ישירות לדפדפן. במקום זאת, הם צריכים לנקות אותו כדי שלא יוכל לבצע פעולות זדוניות. אפשר להחזיר HTML שעבר ניקוי באופן הבא:
function doGet() { return HtmlService.createHtmlOutput('<b>Hello, world!</b>'); }
Html Output
יכול לכלול JavaScript ו-CSS מוטמעים. (זוהי קוד JavaScript רגיל בצד הלקוח שמפעיל שינויים ב-DOM, ולא Apps Script). כל התוכן הזה מועבר לארגז חול באמצעות ארגז חול של iframe. מידע נוסף זמין במדריך בנושא הגבלות בשירות HTML.Methods
שיטה | סוג הערך המוחזר | תיאור קצר |
---|---|---|
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 | הפונקציה מקבלת את כתובת ה-URL של תג קישור לסמל אתר שנוסף לדף באמצעות קריאה ל-set . |
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 Docs, Sheets או Forms. |
set | Html | השיטה הזו לא משפיעה עכשיו – בעבר היא הגדירה את sandbox
mode ששימש לסקריפטים מצד הלקוח. |
set | Html | הגדרת הכותרת של דף הפלט. |
set | Html | הגדרת הרוחב הראשוני של תיבת דו-שיח מותאמת אישית ב-Google Docs, Sheets או Forms. |
set | Html | מגדיר את המצב של הכותרת X-Frame-Options בדף, שמאפשרת לשלוט במניעת clickjacking. |
מסמכים מפורטים
add Meta Tag(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="..."/>
const output = HtmlService.createHtmlOutput('<b>Hello, world!</b>'); output.addMetaTag('viewport', 'width=device-width, initial-scale=1');
פרמטרים
שם | סוג | תיאור |
---|---|---|
name | String | הערך של מאפיין השם של המטא-תג. |
content | String | הערך של מאפיין התוכן של המטא תג. |
חזרה
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 במקום ב-append בכל פעם שמוסיפים תוכן ממקור לא מהימן, כמו משתמש, כדי למנוע מקרה שבו יתרחש בטעות באג של פרצת אבטחה XSS (cross-site scripting), שבו תוכן או סימון שמוסיפים גורמים להרצת קוד בלתי צפויה.
// 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 שאליו רוצים להמיר. ברוב ה-blobs, 'application/pdf' היא האפשרות היחידה התקפה. בתמונות בפורמט BMP, GIF, JPEG או PNG, אפשר להשתמש גם ב-'image/bmp' , 'image/gif' , 'image/jpeg' או 'image/png' . במסמך ב-Google Docs, גם הערך '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()
הפונקציה מקבלת את כתובת ה-URL של תג קישור לסמל אתר שנוסף לדף באמצעות קריאה ל-set
. תגי קישור של סמלי אתר שכלולים ישירות בקובץ HTML של Apps Script מתעלמים.
const output = HtmlService.createHtmlOutput('<b>Hello, world!</b>'); output.setFaviconUrl('http://www.example.com/image.png'); Logger.log(output.getFaviconUrl());
חזרה
String
— כתובת ה-URL של תמונת סמל האתר.
get Height()
הפונקציה מקבלת את הגובה הראשוני של תיבת הדו-שיח בהתאמה אישית ב-Google Docs, Sheets או Forms. אם Html
פורסם כגרסת אינטרנט, השיטה מחזירה את הערך 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
. מטא תגים שכלולים ישירות בקובץ HTML של Apps Script מתעלמים.
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()
הפונקציה מקבלת את הכותרת של דף הפלט. הערה: המערכת מתעלמת מרכיב ה-HTML <title>.
const output = HtmlService.createHtmlOutput('<b>Hello, world!</b>'); Logger.log(output.getTitle());
חזרה
String
— כותרת הדף.
get Width()
הפונקציה מקבלת את הרוחב הראשוני של תיבת הדו-שיח בהתאמה אישית ב-Google Docs, Sheets או Forms. אם Html
פורסם כגרסת אינטרנט, השיטה מחזירה את הערך 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 שכלולים ישירות בקובץ HTML של סקריפט של אפליקציה.
const output = HtmlService.createHtmlOutput('<b>Hello, world!</b>'); output.setFaviconUrl('http://www.example.com/image.png');
פרמטרים
שם | סוג | תיאור |
---|---|---|
icon | String | כתובת ה-URL של תמונת הסמל של האתר, עם סיומת התמונה שמציינת את סוג התמונה. |
חזרה
Html
– הפלט הזה, לצורך שרשור.
set Height(height)
הגדרת הגובה הראשוני של תיבת הדו-שיח בהתאמה אישית ב-Google Docs, Sheets או Forms. אם ה-Html
יפורסם בתור אפליקציית אינטרנט במקום זאת, לשיטה הזו לא תהיה השפעה. כדי לשנות את הגודל של תיבת דו-שיח שכבר פתוחה, צריך להפעיל את
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
יש הרבה פחות הגבלות מאשר במצבי 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 | Sandbox | מצב ארגז החול שבו רוצים להשתמש. |
חזרה
Html
– הפלט הזה, לצורך שרשור.
set Title(title)
הגדרת הכותרת של דף הפלט. באפליקציות אינטרנט, זהו שם הדף כולו, ואילו ב-Html
שמוצג ב-Google Sheets, זהו שם תיבת הדו-שיח.
const output = HtmlService.createHtmlOutput('<b>Hello, world!</b>'); output.setTitle('My First Page');
פרמטרים
שם | סוג | תיאור |
---|---|---|
title | String | השם החדש. |
חזרה
Html
– הפלט הזה, לצורך שרשור.
set Width(width)
הגדרת הרוחב הראשוני של תיבת דו-שיח מותאמת אישית ב-Google Docs, Sheets או Forms. אם ה-Html
יפורסם בתור אפליקציית אינטרנט במקום זאת, לשיטה הזו לא תהיה השפעה. כדי לשנות את הגודל של תיבת דו-שיח שכבר פתוחה, צריך להפעיל את
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
בדף, שמאפשרת לשלוט במניעת 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). const output = HtmlService.createHtmlOutput('<b>Hello, world!</b>'); output.setXFrameOptionsMode(HtmlService.XFrameOptionsMode.ALLOWALL);
פרמטרים
שם | סוג | תיאור |
---|---|---|
mode | XFrameOptionsMode | מצב האפשרויות של XFrame שרוצים להגדיר. |
חזרה
Html
– הפלט הזה, לצורך שרשור.