یک شی HtmlOutput
که می تواند از یک اسکریپت ارائه شود. به دلیل ملاحظات امنیتی، اسکریپت ها نمی توانند مستقیماً HTML را به مرورگر بازگردانند. در عوض، آنها باید آن را ضدعفونی کنند تا نتواند اقدامات مخرب انجام دهد. شما می توانید HTML سالم را به این صورت برگردانید:
function doGet() { return HtmlService.createHtmlOutput('<b>Hello, world!</b>'); }
HtmlOutput
می تواند شامل جاوا اسکریپت و CSS جاسازی شده باشد. (این جاوا اسکریپت سمت کلاینت استاندارد است که DOM را دستکاری می کند، نه Apps Script). همه این محتوا با استفاده از جعبه ایمنی iframe sandbox شده است. برای اطلاعات بیشتر، راهنمای محدودیت ها در سرویس HTML را ببینید. روش ها
روش | نوع برگشت | شرح مختصر |
---|---|---|
addMetaTag(name, content) | HtmlOutput | یک متا تگ به صفحه اضافه می کند. |
append(addedContent) | HtmlOutput | محتوای جدید را به محتوای این HtmlOutput اضافه می کند. |
appendUntrusted(addedContent) | HtmlOutput | محتوای جدید را به محتوای این HtmlOutput اضافه می کند، با استفاده از فرار زمینه. |
asTemplate() | HtmlTemplate | یک HtmlTemplate را برمیگرداند که توسط این HtmlOutput پشتیبانی میشود. |
clear() | HtmlOutput | محتوای فعلی را پاک می کند. |
getAs(contentType) | Blob | داده های داخل این شی را به عنوان یک حباب تبدیل به نوع محتوای مشخص شده برگردانید. |
getBlob() | Blob | داده های داخل این شی را به صورت حباب برگردانید. |
getContent() | String | محتوای این HtmlOutput را دریافت می کند. |
getFaviconUrl() | String | با فراخوانی 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
اضافه می کند. از این فقط برای محتوای یک منبع قابل اعتماد استفاده کنید، زیرا از آن فراری نیست.
// 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
اضافه می کند، با استفاده از فرار زمینه.
این روش به درستی از محتوا بر اساس وضعیت فعلی 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)
داده های داخل این شی را به عنوان یک حباب تبدیل به نوع محتوای مشخص شده برگردانید. این روش پسوند مناسب را به نام فایل اضافه می کند - به عنوان مثال، "myfile.pdf". با این حال، فرض میکند که بخشی از نام فایل که پس از آخرین نقطه (در صورت وجود) یک پسوند موجود است که باید جایگزین شود. در نتیجه، "ShoppingList.12.25.2014" به "ShoppingList.12.25.pdf" تبدیل می شود.
برای مشاهده سهمیه های روزانه برای تبدیل، به سهمیه خدمات Google مراجعه کنید. دامنههای جدید Google Workspace ممکن است به طور موقت مشمول سهمیههای سختگیرانهتر شوند.
پارامترها
نام | تایپ کنید | توضیحات |
---|---|---|
contentType | String | نوع MIME برای تبدیل. برای اکثر حبابها، 'application/pdf' تنها گزینه معتبر است. برای تصاویر با فرمت BMP، GIF، JPEG یا PNG، هر یک از 'image/bmp' ، 'image/gif' ، 'image/jpeg' یا 'image/png' نیز معتبر هستند. برای سند Google Docs، 'text/markdown' نیز معتبر است. |
بازگشت
Blob
- داده ها به عنوان یک لکه.
getBlob()
getContent()
محتوای این HtmlOutput
را دریافت می کند.
// Log "<b>Hello, world!</b>" var output = HtmlService.createHtmlOutput('<b>Hello, world!</b>'); Logger.log(output.getContent());
بازگشت
String
- محتوایی که ارائه می شود.
getFaviconUrl()
با فراخوانی 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 یا جاوا اسکریپت مخرب، کد سمت سرویس گیرنده ارائه شده از سرویس 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
به هر سایتی این امکان را می دهد که صفحه را فریم کند، بنابراین توسعه دهنده باید حفاظت خود را در برابر کلیک جک اجرا کند.
اگر یک اسکریپت حالت 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
- این خروجی، برای زنجیر کردن.