یک اسکریپت در صورتی به یک فایل Google Sheets، Google Docs، Google Slides یا Google Forms متصل میشود که از آن سند ایجاد شده باشد و نه به عنوان یک اسکریپت مستقل . فایلی که یک اسکریپت متصل به آن متصل میشود، "کانتینر" نامیده میشود. اسکریپتهای متصل معمولاً مانند اسکریپتهای مستقل رفتار میکنند، با این تفاوت که در Google Drive نمایش داده نمیشوند، نمیتوان آنها را از فایلی که به آن متصل شدهاند جدا کرد و چند امتیاز ویژه نسبت به فایل والد به دست میآورند.
اسکریپتها همچنین میتوانند به سایتهای گوگل متصل شوند، اما این اسکریپتها تقریباً همیشه به عنوان برنامههای وب مستقر میشوند. اسکریپتهایی که به Sheets، Docs، Slides یا Forms متصل میشوند نیز میتوانند به برنامههای وب تبدیل شوند، اگرچه این مورد غیرمعمول است.
اسکریپتهای محدود شده در واقع افزونههای منتشر نشدهی Google Workspace هستند که فقط برای فایلی که به آن محدود شدهاند، عمل میکنند.
یک اسکریپت محدود ایجاد کنید
شما میتوانید اسکریپتهای محدود شده را در Docs، Sheets، Slides و Forms ایجاد کنید.
اسناد، برگهها یا اسلایدها
برای ایجاد یک اسکریپت محدود در Docs، Sheets یا Slides، یک سند را در Docs، یک صفحه گسترده را در Sheets یا یک ارائه را در Slides باز کنید و روی Extensions > Apps Script کلیک کنید. برای باز کردن مجدد اسکریپت در آینده، همین کار را انجام دهید یا اسکریپت را از داشبورد Apps Script باز کنید.
فرمها
برای ایجاد یک اسکریپت محدود شده در Forms، یک فرم را باز کنید و روی More > Script editor کلیک کنید. برای باز کردن مجدد اسکریپت در آینده، همین کار را انجام دهید یا اسکریپت را از داشبورد Apps Script باز کنید.
ابزار clasp نمیتواند اسکریپتهای مقید ایجاد کند، اما میتواند آنها را کپی کرده و ویرایش کند.
روشهای ویژه
اسکریپتهای محدود میتوانند چند متد را فراخوانی کنند که اسکریپتهای مستقل نمیتوانند:
-
getActiveSpreadsheet،getActiveDocument،getActivePresentationوgetActiveFormبه اسکریپتهای مقید اجازه میدهند بدون مراجعه به شناسه فایل، به فایل والد خود ارجاع دهند. -
getUiبه اسکریپتهای مقید اجازه میدهد تا به رابط کاربری فایل والد خود دسترسی داشته باشند تا بتوانند منوها، دیالوگها و نوارهای کناری سفارشی را اضافه کنند. - در Sheets،
getActiveSheet،getActiveRangeوgetActiveCellبه اسکریپت اجازه میدهند تا برگه فعلی کاربر، محدوده انتخاب شده سلولها یا سلول منفرد انتخاب شده را تعیین کند.setActiveSheetوsetActiveRangeبه اسکریپت اجازه میدهند تا این انتخابها را تغییر دهد. - در Docs،
getActiveTab،getCursorوgetSelectionبه اسکریپت اجازه میدهند تب فعلی کاربر، موقعیت مکاننمای کاربر یا متن انتخابشده را تعیین کند.setActiveTab،setCursorوsetSelectionبه اسکریپت اجازه میدهند این انتخابها را تغییر دهد.
برای اطلاعات بیشتر، به راهنمای گسترش Sheets یا راهنمای گسترش Docs مراجعه کنید.
این متدها فقط برای اسکریپتهای مقیدی که از ویرایشگر اسکریپت، آیتمهای منو، دیالوگها، سایدبارها یا تریگرها اجرا میشوند، در دسترس هستند. وقتی یک اسکریپت مقید به عنوان یک برنامه وب یا با استفاده از API اسکریپت Google Apps اجرا میشود، این متدها در دسترس نیستند.
منوها، دیالوگها و سایدبارهای سفارشی
اسکریپتهای محدود شده میتوانند با اضافه کردن منوها و کادرهای محاورهای یا نوارهای کناری سفارشی ، برگهها، اسناد و فرمها را سفارشی کنند. یک اسکریپت فقط میتواند با رابط کاربری نمونه فعلی یک فایل باز تعامل داشته باشد. اسکریپتی که به یک سند محدود شده است، نمیتواند بر رابط کاربری سند دیگر تأثیر بگذارد.
محرکها
اسکریپتهای محدود میتوانند از تریگرهای سادهای مانند تابع ویژه onOpen استفاده کنند که هر زمان فایلی توسط کاربری که دسترسی ویرایش دارد باز شود، به طور خودکار اجرا میشود. مانند همه انواع اسکریپتها، آنها همچنین میتوانند از تریگرهای قابل نصب استفاده کنند.
توابع سفارشی
یک تابع سفارشی ، تابعی در یک اسکریپت است که به Sheets متصل شده و شما آن را مستقیماً از یک سلول با استفاده از سینتکس =myFunctionName() فراخوانی میکنید. توابع سفارشی مشابه صدها تابع داخلی در Sheets مانند AVERAGE یا SUM هستند، با این تفاوت که شما رفتار تابع سفارشی را تعریف میکنید.
دسترسی به اسکریپتهای محدود شده
فقط کاربرانی که مجوز ویرایش یک کانتینر را دارند میتوانند اسکریپت مقید شده آن را اجرا کنند. همکارانی که فقط دسترسی مشاهده دارند نمیتوانند ویرایشگر اسکریپت را باز کنند. اگر آنها یک کپی از فایل کانتینر تهیه کنند، مالک آن کپی میشوند و میتوانند یک کپی از اسکریپت را ببینند و اجرا کنند.
برای آشنایی با نحوه اشتراکگذاری فایل کانتینر یک اسکریپت، به «اشتراکگذاری فایلها از درایو» مراجعه کنید.
تمام اسکریپتهای متصل به کانتینر از لیست دسترسی مالک، نمایشگر و ویرایشگر یکسانی که برای فایل کانتینر تعریف شده است، استفاده میکنند. مالک کانتینر، صرف نظر از اینکه چه کسی یک پروژه اسکریپت جدید را ایجاد کرده است، مالکیت آن را در اختیار میگیرد.