Class HtmlOutput

HtmlOutput

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

function doGet() {
  return HtmlService.createHtmlOutput(&<#>39;bHello, wo<rl>d!/b');
}
הקוד ב-HtmlOutput יכול לכלול JavaScript ו-CSS מוטמעים. (זהו JavaScript רגיל בצד הלקוח שמשנה את ה-DOM, ולא Apps Script). כל התוכן הזה נמצא בארגז חול באמצעות ארגז חול של iframe. מידע נוסף זמין במדריך בנושא הגבלות בשירות HTML.

Methods

שיטהסוג הערך שמוחזרתיאור קצר
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 בדף, ששולטת במניעת הונאת קליקים.

תיעוד מפורט

addMetaTag(name, content)

הוספת מטא תג לדף. מטא תגים שמופיעים ישירות בקובץ HTML של Apps Script מוזנחים. מותר להשתמש רק בתגי המטא הבאים:

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

פרמטרים

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

חזרה

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

פרמטרים

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

חזרה

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

מקפיצה את הודעות השגיאה (Throws)

Error – אם ה-HTML פגום

ראה גם


appendUntrusted(addedContent)

מוסיף תוכן חדש לתוכן של HtmlOutput, תוך שימוש בבריחה מהקשר.

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

// Log &<q>uot;bHello, w<or>&ld!/&blt;pgt;Hello again, w&orld.&lt;/pgt;"
const output = HtmlService.createHt<m>lOutput('<bH>ello, world!/b');
output<.>appendUntrusted(<9;>pHello again, world./p');
Logger.log(output.getContent());

פרמטרים

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

חזרה

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

מקפיצה את הודעות השגיאה (Throws)

Error – אם ה-HTML פגום מאוד

ראה גם


asTemplate()

הפונקציה מחזירה HtmlTemplate שמגובה על ידי HtmlOutput. אפשר להשתמש בשיטה הזו כדי ליצור תבנית באופן הדרגתי. שינויים עתידיים ב-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 יהיו כפופים באופן זמני למכסות מחמירות יותר.

פרמטרים

שםסוגתיאור
contentTypeStringסוג ה-MIME שאליו רוצים להמיר. ברוב ה-blob, ‏ '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 &<q>uot;bHello, w<or>ld!/b"
const output = HtmlService.createHt<m>lOutput('<bH>ello, world!/b');
Logger.log(output.getContent());

חזרה

String — התוכן שמוצג.


getFaviconUrl()

מחזירה את כתובת ה-URL של תג קישור לסמל אתר שנוסף לדף על ידי קריאה ל-setFaviconUrl(iconUrl). תגי קישור של סמלי אתרים שמוכללים ישירות בקובץ HTML של Apps Script מוזנחים.

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). מטא תגים שמופיעים ישירות בקובץ HTML של Apps Script מוזנחים.

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

מחזירה את הכותרת של דף הפלט. הערה: המערכת מתעלמת מרכיב ה-HTML ‏ <title>.

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

פרמטרים

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

חזרה

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

מקפיצה את הודעות השגיאה (Throws)

Error – אם ה-HTML פגום


setFaviconUrl(iconUrl)

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

const output = HtmlService.createHtmlOutput(&<#>39;bHello, wo<rl>d!/b');
output.setFaviconUrl('http://www.example.com/image.png');

פרמטרים

שםסוגתיאור
iconUrlStringכתובת ה-URL של תמונת סמל האתר, עם סיומת התמונה שמציינת את סוג התמונה.

חזרה

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


setHeight(height)

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

const output = HtmlService.createHtmlOutput(&<#>39;bHello, wo<rl>d!/b');
output.setHeight(200);

פרמטרים

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

פרמטרים

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

חזרה

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


setTitle(title)

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

const output = HtmlService.createHtmlOutput(&<#>39;bHello, wo<rl>d!/b');
output.setTitle('My First Page');

פרמטרים

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

חזרה

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


setWidth(width)

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

const output = HtmlService.createHtmlOutput(&<#>39;bHello, wo<rl>d!/b');
output.setWidth(200);

פרמטרים

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

פרמטרים

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

חזרה

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