Class Ui

رابط کاربری

نمونه‌ای از محیط رابط کاربری برای یک برنامه Google که به اسکریپت اجازه می‌دهد ویژگی‌هایی مانند منوها، دیالوگ‌ها و نوارهای جانبی را اضافه کند. یک اسکریپت فقط برای نمونه فعلی یک ویرایشگر باز می‌تواند با UI تعامل داشته باشد، و تنها در صورتی که اسکریپت به ویرایشگر محدود شده باشد.

// Display a dialog box with a title, message, input field, and "Yes" and "No"
// buttons. The user can also close the dialog by clicking the close button in
// its title bar.
const ui = SpreadsheetApp.getUi();
const response = ui.prompt(
    'Getting to know you',
    'May I know your name?',
    ui.ButtonSet.YES_NO,
);

// Process the user's response.
if (response.getSelectedButton() === ui.Button.YES) {
  Logger.log('The user\'s name is %s.', response.getResponseText());
} else if (response.getSelectedButton() === ui.Button.NO) {
  Logger.log('The user didn\'t want to provide a name.');
} else {
  Logger.log('The user clicked the close button in the dialog\'s title bar.');
}

خواص

اموال تایپ کنید توضیحات
Button Button یک عدد که نشان دهنده دکمه های گفتگوی از پیش تعیین شده و محلی شده است که توسط یک هشدار یا Prompt Response.getSelectedButton() بازگردانده می شود تا نشان دهد کاربر روی کدام دکمه در یک گفتگو کلیک کرده است.
Button Set Button Set یک عدد که مجموعه‌های از پیش تعیین‌شده و بومی‌سازی شده‌ای از یک یا چند دکمه گفتگو را نشان می‌دهد که می‌توانند به یک هشدار یا یک درخواست اضافه شوند.

روش ها

روش نوع برگشت شرح مختصر
alert(prompt) Button کادر محاوره ای را با پیام داده شده و دکمه "OK" در ویرایشگر کاربر باز می کند.
alert(prompt, buttons) Button کادر محاوره ای را در ویرایشگر کاربر با پیام داده شده و مجموعه دکمه ها باز می کند.
alert(title, prompt, buttons) Button کادر محاوره ای را در ویرایشگر کاربر با عنوان، پیام و مجموعه دکمه های داده شده باز می کند.
create Addon Menu() Menu سازنده ای ایجاد می کند که می تواند برای درج یک منوی فرعی در منوی افزونه های ویرایشگر استفاده شود.
create Menu(caption) Menu سازنده ای ایجاد می کند که می تواند برای افزودن یک منو به رابط کاربری ویرایشگر استفاده شود.
prompt(prompt) Prompt Response کادر محاوره ای ورودی را با پیام داده شده و دکمه "OK" در ویرایشگر کاربر باز می کند.
prompt(prompt, buttons) Prompt Response یک کادر محاوره ای ورودی را با پیام داده شده و مجموعه دکمه ها در ویرایشگر کاربر باز می کند.
prompt(title, prompt, buttons) Prompt Response کادر محاوره ای ورودی را با عنوان، پیام و مجموعه دکمه های داده شده در ویرایشگر کاربر باز می کند.
show Modal Dialog(userInterface, title) void یک کادر محاوره ای مدال را در ویرایشگر کاربر با محتوای سمت مشتری سفارشی باز می کند.
show Modeless Dialog(userInterface, title) void یک کادر محاوره‌ای بدون حالت را در ویرایشگر کاربر با محتوای سمت مشتری سفارشی باز می‌کند.
show Sidebar(userInterface) void نوار کناری را در ویرایشگر کاربر با محتوای سمت مشتری سفارشی باز می کند.

مستندات دقیق

alert(prompt)

کادر محاوره ای را با پیام داده شده و دکمه "OK" در ویرایشگر کاربر باز می کند. این روش اسکریپت سمت سرور را در حالی که گفتگو باز است به حالت تعلیق در می آورد. اسکریپت پس از رد گفتگو توسط کاربر از سر گرفته می‌شود، اما اتصالات Jdbc و قفل‌های Lock Service در سراسر تعلیق باقی نمی‌مانند. برای اطلاعات بیشتر، راهنمای گفتگوها و نوارهای کناری را ببینید.

// Display "Hello, world" in a dialog box with an "OK" button. The user can also
// close the dialog by clicking the close button in its title bar.
SpreadsheetApp.getUi().alert('Hello, world');

پارامترها

نام تایپ کنید توضیحات
prompt String پیامی که در کادر محاوره ای نمایش داده می شود.

بازگشت

Button - دکمه ای که کاربر روی آن کلیک کرده است.


alert(prompt, buttons)

کادر محاوره ای را در ویرایشگر کاربر با پیام داده شده و مجموعه دکمه ها باز می کند. این روش اسکریپت سمت سرور را در حالی که گفتگو باز است به حالت تعلیق در می آورد. اسکریپت پس از رد گفتگو توسط کاربر از سر گرفته می‌شود، اما اتصالات Jdbc و قفل‌های Lock Service در سراسر تعلیق باقی نمی‌مانند. برای اطلاعات بیشتر، راهنمای گفتگوها و نوارهای کناری را ببینید.

// Display a dialog box with a message and "Yes" and "No" buttons. The user can
// also close the dialog by clicking the close button in its title bar.
const ui = SpreadsheetApp.getUi();
const response = ui.alert(
    'Are you sure you want to continue?',
    ui.ButtonSet.YES_NO,
);

// Process the user's response.
if (response === ui.Button.YES) {
  Logger.log('The user clicked "Yes."');
} else {
  Logger.log(
      'The user clicked "No" or the close button in the dialog\'s title bar.',
  );
}

پارامترها

نام تایپ کنید توضیحات
prompt String پیامی که در کادر محاوره ای نمایش داده می شود.
buttons Button Set دکمه تنظیم شده برای نمایش در کادر محاوره ای.

بازگشت

Button - دکمه ای که کاربر روی آن کلیک کرده است.


alert(title, prompt, buttons)

کادر محاوره ای را در ویرایشگر کاربر با عنوان، پیام و مجموعه دکمه های داده شده باز می کند. این روش اسکریپت سمت سرور را در حالی که گفتگو باز است به حالت تعلیق در می آورد. اسکریپت پس از رد گفتگو توسط کاربر از سر گرفته می‌شود، اما اتصالات Jdbc و قفل‌های Lock Service در سراسر تعلیق باقی نمی‌مانند. برای اطلاعات بیشتر، راهنمای گفتگوها و نوارهای کناری را ببینید.

// Display a dialog box with a title, message, and "Yes" and "No" buttons. The
// user can also close the dialog by clicking the close button in its title bar.
const ui = SpreadsheetApp.getUi();
const response = ui.alert(
    'Confirm',
    'Are you sure you want to continue?',
    ui.ButtonSet.YES_NO,
);

// Process the user's response.
if (response === ui.Button.YES) {
  Logger.log('The user clicked "Yes."');
} else {
  Logger.log(
      'The user clicked "No" or the close button in the dialog\'s title bar.',
  );
}

پارامترها

نام تایپ کنید توضیحات
title String عنوانی که در بالای کادر محاوره ای نمایش داده می شود.
prompt String پیامی که در کادر محاوره ای نمایش داده می شود.
buttons Button Set دکمه تنظیم شده برای نمایش در کادر محاوره ای.

بازگشت

Button - دکمه ای که کاربر روی آن کلیک کرده است.


create Addon Menu()

سازنده ای ایجاد می کند که می تواند برای درج یک منوی فرعی در منوی افزونه های ویرایشگر استفاده شود. تا زمانی که Menu.addToUi() فراخوانی نشود، منو در واقع به روز نمی شود. اگر اسکریپت به عنوان یک افزونه اجرا می شود، نام زیر منو با نام افزونه در فروشگاه وب مطابقت دارد. اگر اسکریپت مستقیماً به سند متصل شود، نام زیر منو با نام اسکریپت مطابقت دارد. برای اطلاعات بیشتر، به راهنمای منوها مراجعه کنید.

// Add an item to the Add-on menu, under a sub-menu whose name is set
// automatically.
function onOpen(e) {
  SpreadsheetApp.getUi()
      .createAddonMenu()
      .addItem('Show', 'showSidebar')
      .addToUi();
}

بازگشت

Menu - سازنده منوی جدید.


create Menu(caption)

سازنده ای ایجاد می کند که می تواند برای افزودن یک منو به رابط کاربری ویرایشگر استفاده شود. تا زمانی که Menu.addToUi() فراخوانی نشود، منو در واقع اضافه نمی شود. برای اطلاعات بیشتر، به راهنمای منوها مراجعه کنید. برچسب یک منوی سطح بالا باید با حروف سرفصل باشد (همه کلمات اصلی با حروف بزرگ نوشته شده باشند)، اگرچه برچسب یک منوی فرعی باید با حروف جمله باشد (فقط اولین کلمه با حروف بزرگ). اگر اسکریپت به عنوان یک افزونه منتشر شود، پارامتر caption نادیده گرفته می‌شود و منو به عنوان یک منوی فرعی از منوی Extensions اضافه می‌شود که معادل create Addon Menu() است.

// Add a custom menu to the active document, including a separator and a
// sub-menu.
function onOpen(e) {
  SpreadsheetApp.getUi()
      .createMenu('My Menu')
      .addItem('My menu item', 'myFunction')
      .addSeparator()
      .addSubMenu(
          SpreadsheetApp.getUi()
              .createMenu('My sub-menu')
              .addItem('One sub-menu item', 'mySecondFunction')
              .addItem('Another sub-menu item', 'myThirdFunction'),
          )
      .addToUi();
}

پارامترها

نام تایپ کنید توضیحات
caption String برچسب منو، با تمام کلمات اصلی با حروف بزرگ برای یک منوی سطح بالا، یا فقط اولین کلمه با حروف بزرگ برای یک منوی فرعی.

بازگشت

Menu - سازنده منوی جدید.


prompt(prompt)

کادر محاوره ای ورودی را با پیام داده شده و دکمه "OK" در ویرایشگر کاربر باز می کند. این روش اسکریپت سمت سرور را در حالی که گفتگو باز است به حالت تعلیق در می آورد. اسکریپت پس از رد گفتگو توسط کاربر از سر گرفته می‌شود، اما اتصالات Jdbc و قفل‌های Lock Service در سراسر تعلیق باقی نمی‌مانند. برای اطلاعات بیشتر، راهنمای گفتگوها و نوارهای کناری را ببینید.

// Display a dialog box with a message, input field, and an "OK" button. The
// user can also close the dialog by clicking the close button in its title bar.
const ui = SpreadsheetApp.getUi();
const response = ui.prompt('Enter your name:');

// Process the user's response.
if (response.getSelectedButton() === ui.Button.OK) {
  Logger.log('The user\'s name is %s.', response.getResponseText());
} else {
  Logger.log('The user clicked the close button in the dialog\'s title bar.');
}

پارامترها

نام تایپ کنید توضیحات
prompt String پیامی که در کادر محاوره ای نمایش داده می شود.

بازگشت

Prompt Response - نمایشی از پاسخ کاربر.


prompt(prompt, buttons)

یک کادر محاوره ای ورودی را با پیام داده شده و مجموعه دکمه ها در ویرایشگر کاربر باز می کند. این روش اسکریپت سمت سرور را در حالی که گفتگو باز است به حالت تعلیق در می آورد. اسکریپت پس از رد گفتگو توسط کاربر از سر گرفته می‌شود، اما اتصالات Jdbc و قفل‌های Lock Service در سراسر تعلیق باقی نمی‌مانند. برای اطلاعات بیشتر، راهنمای گفتگوها و نوارهای کناری را ببینید.

// Display a dialog box with a message, input field, and "Yes" and "No" buttons.
// The user can also close the dialog by clicking the close button in its title
// bar.
const ui = SpreadsheetApp.getUi();
const response = ui.prompt('May I know your name?', ui.ButtonSet.YES_NO);

// Process the user's response.
if (response.getSelectedButton() === ui.Button.YES) {
  Logger.log('The user\'s name is %s.', response.getResponseText());
} else if (response.getSelectedButton() === ui.Button.NO) {
  Logger.log('The user didn\'t want to provide a name.');
} else {
  Logger.log('The user clicked the close button in the dialog\'s title bar.');
}

پارامترها

نام تایپ کنید توضیحات
prompt String پیامی که در کادر محاوره ای نمایش داده می شود.
buttons Button Set دکمه تنظیم شده برای نمایش در کادر محاوره ای.

بازگشت

Prompt Response - نمایشی از پاسخ کاربر.


prompt(title, prompt, buttons)

کادر محاوره ای ورودی را با عنوان، پیام و مجموعه دکمه های داده شده در ویرایشگر کاربر باز می کند. این روش اسکریپت سمت سرور را در حالی که گفتگو باز است به حالت تعلیق در می آورد. اسکریپت پس از رد گفتگو توسط کاربر از سر گرفته می‌شود، اما اتصالات Jdbc و قفل‌های Lock Service در سراسر تعلیق باقی نمی‌مانند. برای اطلاعات بیشتر، راهنمای گفتگوها و نوارهای کناری را ببینید.

// Display a dialog box with a title, message, input field, and "Yes" and "No"
// buttons. The user can also close the dialog by clicking the close button in
// its title bar.
const ui = SpreadsheetApp.getUi();
const response = ui.prompt(
    'Getting to know you',
    'May I know your name?',
    ui.ButtonSet.YES_NO,
);

// Process the user's response.
if (response.getSelectedButton() === ui.Button.YES) {
  Logger.log('The user\'s name is %s.', response.getResponseText());
} else if (response.getSelectedButton() === ui.Button.NO) {
  Logger.log('The user didn\'t want to provide a name.');
} else {
  Logger.log('The user clicked the close button in the dialog\'s title bar.');
}

پارامترها

نام تایپ کنید توضیحات
title String عنوانی که در بالای کادر محاوره ای نمایش داده می شود.
prompt String پیامی که در کادر محاوره ای نمایش داده می شود.
buttons Button Set دکمه تنظیم شده برای نمایش در کادر محاوره ای.

بازگشت

Prompt Response - نمایشی از پاسخ کاربر.


show Modal Dialog(userInterface, title)

یک کادر محاوره ای مدال را در ویرایشگر کاربر با محتوای سمت مشتری سفارشی باز می کند. این روش اسکریپت سمت سرور را در حالی که گفتگو باز است معلق نمی کند. برای برقراری ارتباط با اسکریپت سمت سرور، مؤلفه سمت سرویس گیرنده باید با استفاده از google.script API برای Html Service تماس‌های غیرهمزمان برقرار کند. برای بستن دیالوگ به صورت برنامه‌ای، google.script.host.close() را در سمت سرویس گیرنده یک برنامه وب Html Service فراخوانی کنید. برای اطلاعات بیشتر، راهنمای گفتگوها و نوارهای کناری را ببینید.

دیالوگ های مدال از تعامل کاربر با هر چیزی غیر از گفتگو جلوگیری می کند. در مقابل، دیالوگ ها و نوارهای فرعی بدون حالت به کاربر اجازه می دهند با ویرایشگر تعامل داشته باشند. تقریباً در همه موارد، یک دیالوگ مودال یا نوار کناری انتخاب بهتری نسبت به یک گفتگوی بدون مدل است.

// Display a modal dialog box with custom HtmlService content.
const htmlOutput = HtmlService
                       .createHtmlOutput(
                           '<p>A change of speed, a change of style...</p>',
                           )
                       .setWidth(250)
                       .setHeight(300);
SpreadsheetApp.getUi().showModalDialog(htmlOutput, 'My add-on');

پارامترها

نام تایپ کنید توضیحات
user Interface Object یک Html Output که نمایانگر رابط برای نمایش است.
title String عنوان گفتگو؛ با فراخوانی set Title() در شیء user Interface ، هر عنوانی را که تنظیم شده است لغو می کند.

مجوز

اسکریپت هایی که از این روش استفاده می کنند نیاز به مجوز با یک یا چند مورد از حوزه های زیر دارند:

  • https://www.googleapis.com/auth/script.container.ui

show Modeless Dialog(userInterface, title)

یک کادر محاوره‌ای بدون حالت را در ویرایشگر کاربر با محتوای سمت مشتری سفارشی باز می‌کند. این روش اسکریپت سمت سرور را در حالی که گفتگو باز است معلق نمی کند. برای برقراری ارتباط با اسکریپت سمت سرور، مؤلفه سمت سرویس گیرنده باید با استفاده از google.script API برای Html Service تماس‌های غیرهمزمان برقرار کند. برای بستن دیالوگ به صورت برنامه‌ای، google.script.host.close() را در سمت سرویس گیرنده یک برنامه وب Html Service فراخوانی کنید. برای اطلاعات بیشتر، راهنمای گفتگوها و نوارهای کناری را ببینید.

دیالوگ های بدون مدل به کاربر اجازه می دهند با ویرایشگر پشت گفتگو تعامل داشته باشند. در مقابل، دیالوگ های مودال این کار را نمی کنند. تقریباً در همه موارد، یک دیالوگ مودال یا نوار کناری انتخاب بهتری نسبت به یک گفتگوی بدون مدل است.

// Display a modeless dialog box with custom HtmlService content.
const htmlOutput = HtmlService
                       .createHtmlOutput(
                           '<p>A change of speed, a change of style...</p>',
                           )
                       .setWidth(250)
                       .setHeight(300);
SpreadsheetApp.getUi().showModelessDialog(htmlOutput, 'My add-on');

پارامترها

نام تایپ کنید توضیحات
user Interface Object یک Html Output که نمایانگر رابط برای نمایش است.
title String عنوان گفتگو؛ با فراخوانی set Title() در شیء user Interface ، هر عنوانی را که تنظیم شده است لغو می کند.

مجوز

اسکریپت هایی که از این روش استفاده می کنند نیاز به مجوز با یک یا چند مورد از حوزه های زیر دارند:

  • https://www.googleapis.com/auth/script.container.ui

show Sidebar(userInterface)

نوار کناری را در ویرایشگر کاربر با محتوای سمت مشتری سفارشی باز می کند. این روش اسکریپت سمت سرور را در حالی که نوار کناری باز است به حالت تعلیق در نمی آورد. برای برقراری ارتباط با اسکریپت سمت سرور، مؤلفه سمت سرویس گیرنده باید با استفاده از google.script API برای Html Service تماس‌های غیرهمزمان برقرار کند. برای بستن نوار کناری به صورت برنامه‌نویسی، google.script.host.close() را در سمت کلاینت یک برنامه وب Html Service فراخوانی کنید. برای اطلاعات بیشتر، راهنمای گفتگوها و نوارهای کناری را ببینید.

نوار کناری در سمت راست ویرایشگر برای کاربرانی که محیط آنها از زبان چپ به راست استفاده می کند و در سمت چپ ویرایشگر برای زبان های راست به چپ نمایش داده می شود. همه نوارهای کناری نشان داده شده توسط اسکریپت ها 300 پیکسل عرض دارند.

// Display a sidebar with custom HtmlService content.
const htmlOutput = HtmlService
                       .createHtmlOutput(
                           '<p>A change of speed, a change of style...</p>',
                           )
                       .setTitle('My add-on');
SpreadsheetApp.getUi().showSidebar(htmlOutput);

پارامترها

نام تایپ کنید توضیحات
user Interface Object یک Html Output که نمایانگر رابط برای نمایش است.

مجوز

اسکریپت هایی که از این روش استفاده می کنند نیاز به مجوز با یک یا چند مورد از حوزه های زیر دارند:

  • https://www.googleapis.com/auth/script.container.ui

روش های منسوخ شده