Class HtmlOutput

HtmlOutput

אובייקט 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');

פרמטרים

שםסוגתיאור
nameStringערך מאפיין השם של המטא תג.
contentStringהערך של מאפיין התוכן של המטא תג.

חזרה

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());

פרמטרים

שםסוגתיאור
addedContentStringהתוכן שצריך לצרף.

חזרה

HtmlOutput – הפלט הזה, לשרשור.

קליעות

Error – אם פורמט ה-HTML שגוי

ראה גם


appendUntrusted(addedContent)

מצרף תוכן חדש לתוכן של HtmlOutput, באמצעות בריחה לפי הקשר.

השיטה הזו משמשת לסימון בריחה (escape) בתוכן בהתאם למצב הנוכחי של HtmlOutput, כך שהתוצאה היא מחרוזת בטוחה ללא תגי עיצוב או השפעות צד. אני רוצה להשתמש בזה במקום להשתמש להוסיף בכל פעם שאתם מוסיפים תוכן ממקור לא מהימן, למשל ממשתמש, כדי להימנע התר בטעות באג של סקריפטים באתרים שונים (XSS) שבו יש תוכן או תגי עיצוב שמצורפים תגרום לביצוע קוד בלתי צפוי.

// Log "<b>Hello, world!</b>&lt;p&gt;Hello again, world.&lt;/p&gt;"
var output = HtmlService.createHtmlOutput('<b>Hello, world!</b>');
output.appendUntrusted('<p>Hello again, world.</p>');
Logger.log(output.getContent());

פרמטרים

שםסוגתיאור
addedContentStringהתוכן שצריך לצרף.

חזרה

HtmlOutput – הפלט הזה, לשרשור.

קליעות

Error – אם קוד ה-HTML בפורמט שגוי מאוד

ראה גם


asTemplate()

הפונקציה מחזירה ערך HtmlTemplate שמגובה על ידי הפרמטר HtmlOutput. אפשר להשתמש בשיטה הזו כדי: לבנות תבנית באופן מצטבר. שינויים עתידיים ב-HtmlOutput ישפיעו על התוכן של גם HtmlTemplate.

var output = HtmlService.createHtmlOutput('<b>Hello, world!</b>');
var template = output.asTemplate();

חזרה

HtmlTemplateHtmlTemplate החדש.


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 שייווצרו. במכסות.

פרמטרים

שםסוגתיאור
contentTypeStringסוג ה-MIME שאליו צריך להמיר. לרוב ה-blobs, 'application/pdf' הוא האפשרות החוקית היחידה. בשביל תמונות בפורמט BMP, GIF, JPEG או PNG, כל אחד מהקריטריונים של 'image/bmp', 'image/gif', 'image/jpeg' או 'image/png' צריך להיות תואם גם תקין. במסמך של Google Docs, גם 'text/markdown' תקף.

חזרה

Blob – הנתונים כ-blob.


getBlob()

החזרת הנתונים שבתוך האובייקט הזה כ-blob.

חזרה

Blob – הנתונים כ-blob.


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>');

פרמטרים

שםסוגתיאור
contentStringהתוכן להצגה.

חזרה

HtmlOutput – הפלט הזה, לשרשור.

קליעות

Error – אם פורמט ה-HTML שגוי


setFaviconUrl(iconUrl)

הוספת תג קישור של סמל אתר לדף. תגי קישור של סמל אתר כלולים ישירות באפליקציות המערכת מתעלמת מקובץ ה-HTML של הסקריפט.

var output = HtmlService.createHtmlOutput('<b>Hello, world!</b>');
output.setFaviconUrl('http://www.example.com/image.png');

פרמטרים

שםסוגתיאור
iconUrlStringכתובת ה-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);

פרמטרים

שםסוגתיאור
heightIntegerהגובה החדש בפיקסלים; הפונקציה 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>

פרמטרים

שםסוגתיאור
modeSandboxModeמצב ארגז החול שבו יש להשתמש.

חזרה

HtmlOutput – הפלט הזה, לשרשור.


setTitle(title)

מגדיר את הכותרת של דף הפלט. באפליקציות אינטרנט, זוהי הכותרת של הדף כולו, ואילו עבור HtmlOutput שמוצג ב-Google Sheets, זו הכותרת של תיבת הדו-שיח.

var output = HtmlService.createHtmlOutput('<b>Hello, world!</b>');
output.setTitle('My First Page');

פרמטרים

שםסוגתיאור
titleStringהשם החדש.

חזרה

HtmlOutput – הפלט הזה, לשרשור.


setWidth(width)

הגדרת הרוחב הראשוני של תיבת דו-שיח בהתאמה אישית ב-Google Docs, Sheets או Forms. אם הקובץ HtmlOutput פורסם בתור אפליקציית אינטרנט, הפעולה הזו לשיטה אין השפעה. כדי לשנות את הגודל של תיבת דו-שיח שכבר פתוחה, קוראים לפונקציה google.script.host.setWidth(width) בקוד בצד הלקוח.

var output = HtmlService.createHtmlOutput('<b>Hello, world!</b>');
output.setWidth(200);

פרמטרים

שםסוגתיאור
widthIntegerהרוחב החדש בפיקסלים; התוצאה 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);

פרמטרים

שםסוגתיאור
modeXFrameOptionsModeמצב האפשרויות של XFrame להגדרה.

חזרה

HtmlOutput – הפלט הזה, לשרשור.