Class HtmlOutput

خروجی Html

یک شی 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>&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());

پارامترها

نام تایپ کنید توضیحات
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()

داده های داخل این شی را به صورت حباب برگردانید.

بازگشت

Blob - داده ها به عنوان یک لکه.


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 - این خروجی، برای زنجیر کردن.