อินสแตนซ์ของสภาพแวดล้อมอินเทอร์เฟซผู้ใช้สําหรับแอป 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. var ui = SpreadsheetApp.getUi(); var 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 | ennum แสดงปุ่มแปลที่กําหนดไว้ล่วงหน้าซึ่งแสดงโดยการแจ้งเตือนหรือ PromptResponse.getSelectedButton() เพื่อระบุว่าปุ่มใดในกล่องโต้ตอบที่ผู้ใช้คลิก |
ButtonSet | ButtonSet | ennum แสดงถึงชุดปุ่มที่แปลแล้วอย่างน้อย 1 ชุดที่กําหนดไว้ล่วงหน้า ซึ่งอาจเพิ่มไปยังการแจ้งเตือนหรือข้อความแจ้งได้ |
เมธอด
วิธีการ | ประเภทการแสดงผล | รายละเอียดแบบย่อ |
---|---|---|
alert(prompt) | Button | เปิดกล่องโต้ตอบในเครื่องมือแก้ไขของผู้ใช้พร้อมกับข้อความที่ระบุและปุ่ม"OK" |
alert(prompt, buttons) | Button | เปิดกล่องโต้ตอบในเครื่องมือแก้ไขของผู้ใช้พร้อมด้วยข้อความและชุดปุ่มที่มีให้ |
alert(title, prompt, buttons) | Button | เปิดกล่องโต้ตอบในเครื่องมือแก้ไขของผู้ใช้ที่มีชื่อ ข้อความ และชุดปุ่มที่ระบุ |
createAddonMenu() | Menu | สร้างเครื่องมือสร้างที่ใช้แทรกเมนูย่อยลงในเมนูส่วนเสริมของเครื่องมือแก้ไขได้ |
createMenu(caption) | Menu | สร้างเครื่องมือสร้างที่ใช้เพิ่มเมนูไปยังอินเทอร์เฟซผู้ใช้ของตัวแก้ไขได้ |
prompt(prompt) | PromptResponse | เปิดกล่องโต้ตอบอินพุตในเครื่องมือแก้ไขของผู้ใช้พร้อมกับข้อความที่ระบุและปุ่ม"OK" |
prompt(prompt, buttons) | PromptResponse | เปิดกล่องโต้ตอบอินพุตในเครื่องมือแก้ไขของผู้ใช้พร้อมด้วยข้อความและชุดปุ่มที่มีให้ |
prompt(title, prompt, buttons) | PromptResponse | เปิดกล่องโต้ตอบอินพุตในเครื่องมือแก้ไขของผู้ใช้ที่มีชื่อ ข้อความ และชุดปุ่มที่ระบุ |
showModalDialog(userInterface, title) | void | เปิดกล่องโต้ตอบโมดัลในเครื่องมือแก้ไขของผู้ใช้พร้อมด้วยเนื้อหาฝั่งไคลเอ็นต์ที่กําหนดเอง |
showModelessDialog(userInterface, title) | void | เปิดกล่องโต้ตอบแบบไร้โหมดในเครื่องมือแก้ไขของผู้ใช้พร้อมด้วยเนื้อหาฝั่งไคลเอ็นต์ที่กําหนดเอง |
showSidebar(userInterface) | void | เปิดแถบด้านข้างในเครื่องมือแก้ไขของผู้ใช้ที่มีเนื้อหาฝั่งไคลเอ็นต์ที่กําหนดเอง |
เอกสารประกอบโดยละเอียด
alert(prompt)
เปิดกล่องโต้ตอบในเครื่องมือแก้ไขของผู้ใช้พร้อมกับข้อความที่ระบุและปุ่ม"OK" เมธอดนี้จะระงับสคริปต์ฝั่งเซิร์ฟเวอร์ในขณะที่กล่องโต้ตอบเปิดอยู่ สคริปต์จะเล่นต่อหลังจากที่ผู้ใช้ปิดกล่องโต้ตอบ แต่การเชื่อมต่อ Jdbc
และล็อก LockService
รายการจะไม่ถูกระงับ หากต้องการข้อมูลเพิ่มเติม โปรดดูคู่มือในกล่องโต้ตอบและแถบด้านข้าง
// 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
และล็อก LockService
รายการจะไม่ถูกระงับ หากต้องการข้อมูลเพิ่มเติม โปรดดูคู่มือในกล่องโต้ตอบและแถบด้านข้าง
// 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. var ui = SpreadsheetApp.getUi(); var 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 | ButtonSet | ปุ่มที่ตั้งค่าให้แสดงในกล่องโต้ตอบ |
ไปกลับ
Button
— ปุ่มที่ผู้ใช้คลิก
alert(title, prompt, buttons)
เปิดกล่องโต้ตอบในเครื่องมือแก้ไขของผู้ใช้ที่มีชื่อ ข้อความ และชุดปุ่มที่ระบุ เมธอดนี้จะระงับสคริปต์ฝั่งเซิร์ฟเวอร์ในขณะที่กล่องโต้ตอบเปิดอยู่ สคริปต์จะเล่นต่อหลังจากที่ผู้ใช้ปิดกล่องโต้ตอบแล้ว แต่การเชื่อมต่อ Jdbc
และล็อก LockService
รายการไม่ถูกระงับ หากต้องการข้อมูลเพิ่มเติม โปรดดูคู่มือในกล่องโต้ตอบและแถบด้านข้าง
// 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. var ui = SpreadsheetApp.getUi(); var 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 | ButtonSet | ปุ่มที่ตั้งค่าให้แสดงในกล่องโต้ตอบ |
ไปกลับ
Button
— ปุ่มที่ผู้ใช้คลิก
createAddonMenu()
สร้างเครื่องมือสร้างที่ใช้แทรกเมนูย่อยลงในเมนูส่วนเสริมของเครื่องมือแก้ไขได้ ระบบจะไม่อัปเดตเมนู
จนกว่าจะมีการเรียกใช้ Menu.addToUi()
จริงๆ หากสคริปต์ทํางานเป็นส่วนเสริม ชื่อเมนูย่อยจะตรงกับชื่อส่วนเสริมในเว็บสโตร์ หากสคริปต์เชื่อมโยงกับเอกสารโดยตรง ชื่อเมนูย่อยจะตรงกับชื่อสคริปต์ ##39 โปรดดูข้อมูลเพิ่มเติมที่คําแนะนําเกี่ยวกับเมนู
// 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
— เครื่องมือสร้างเมนูใหม่
createMenu(caption)
สร้างเครื่องมือสร้างที่ใช้เพิ่มเมนูไปยังอินเทอร์เฟซผู้ใช้ของตัวแก้ไขได้ ระบบจะไม่เพิ่มเมนู
จนกว่าจะมีการเรียกใช้ Menu.addToUi()
จริงๆ โปรดดูข้อมูลเพิ่มเติมที่คําแนะนําเกี่ยวกับเมนู ป้ายกํากับสําหรับเมนูระดับบนสุดควรอยู่ในรูปแบบตัวพิมพ์ใหญ่ (คําสําคัญทั้งหมดที่เป็นตัวพิมพ์ใหญ่) แม้ว่าป้ายกํากับสําหรับเมนูย่อยควรเป็นตัวพิมพ์ใหญ่ในประโยค (เฉพาะคําแรกที่เป็นตัวพิมพ์ใหญ่) หากมีการเผยแพร่สคริปต์เป็นส่วนเสริม ระบบจะไม่สนใจพารามิเตอร์ caption
และเมนูจะเพิ่มเป็นเมนูย่อยของเมนูส่วนเสริม ซึ่งเทียบเท่ากับ createAddonMenu()
// 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
และล็อก LockService
รายการไม่ถูกระงับ หากต้องการข้อมูลเพิ่มเติม โปรดดูคู่มือในกล่องโต้ตอบและแถบด้านข้าง
// 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. var ui = SpreadsheetApp.getUi(); var 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 | ข้อความที่จะแสดงในกล่องโต้ตอบ |
ไปกลับ
PromptResponse
— การนําเสนอการตอบกลับของผู้ใช้
prompt(prompt, buttons)
เปิดกล่องโต้ตอบอินพุตในเครื่องมือแก้ไขของผู้ใช้พร้อมด้วยข้อความและชุดปุ่มที่มีให้ เมธอดนี้จะระงับสคริปต์ฝั่งเซิร์ฟเวอร์ในขณะที่กล่องโต้ตอบเปิดอยู่ สคริปต์จะเล่นต่อหลังจากที่ผู้ใช้ปิดกล่องโต้ตอบแล้ว แต่การเชื่อมต่อ Jdbc
และล็อก LockService
รายการไม่ถูกระงับ หากต้องการข้อมูลเพิ่มเติม โปรดดูคู่มือในกล่องโต้ตอบและแถบด้านข้าง
// 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. var ui = SpreadsheetApp.getUi(); var 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 | ButtonSet | ปุ่มที่ตั้งค่าให้แสดงในกล่องโต้ตอบ |
ไปกลับ
PromptResponse
— การนําเสนอการตอบกลับของผู้ใช้
prompt(title, prompt, buttons)
เปิดกล่องโต้ตอบอินพุตในเครื่องมือแก้ไขของผู้ใช้ที่มีชื่อ ข้อความ และชุดปุ่มที่ระบุ เมธอดนี้จะระงับสคริปต์ฝั่งเซิร์ฟเวอร์ในขณะที่กล่องโต้ตอบเปิดอยู่ สคริปต์นี้จะทํางานต่อหลังจากที่ผู้ใช้ปิดกล่องโต้ตอบแล้ว แต่การเชื่อมต่อ Jdbc
และการล็อก LockService
ทําไม่สําเร็จ ดูข้อมูลเพิ่มเติมได้ในคู่มือสําหรับกล่องโต้ตอบและแถบด้านข้าง
// 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. var ui = SpreadsheetApp.getUi(); var 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 | ButtonSet | ปุ่มที่ตั้งค่าให้แสดงในกล่องโต้ตอบ |
ไปกลับ
PromptResponse
— การนําเสนอการตอบกลับของผู้ใช้
showModalDialog(userInterface, title)
เปิดกล่องโต้ตอบโมดัลในเครื่องมือแก้ไขของผู้ใช้พร้อมด้วยเนื้อหาฝั่งไคลเอ็นต์ที่กําหนดเอง วิธีนี้จะไม่ระงับสคริปต์ฝั่งเซิร์ฟเวอร์ขณะที่กล่องโต้ตอบเปิดอยู่ คอมโพเนนต์ฝั่งไคลเอ็นต์ต้องใช้โค้ดเรียกกลับแบบไม่พร้อมกันโดยใช้ API google.script
สําหรับ HtmlService
เพื่อสื่อสารกับสคริปต์ฝั่งเซิร์ฟเวอร์ หากต้องการปิดกล่องโต้ตอบแบบเป็นโปรแกรม ให้เรียกใช้
google.script.host.close()
ในฝั่งไคลเอ็นต์ของเว็บแอป HtmlService
หากต้องการข้อมูลเพิ่มเติม โปรดดูคู่มือสําหรับกล่องโต้ตอบและแถบด้านข้าง
กล่องโต้ตอบแบบโมดัลป้องกันไม่ให้ผู้ใช้โต้ตอบกับสิ่งอื่นที่ไม่ใช่กล่องโต้ตอบ ในทางตรงกันข้าม กล่องโต้ตอบที่ไม่ทันสมัยและแถบด้านข้างช่วยให้ผู้ใช้สามารถโต้ตอบกับเครื่องมือแก้ไขได้ ในเกือบทุกกรณี กล่องโต้ตอบหรือแถบด้านข้างแบบโมเดิร์นเป็นตัวเลือกที่ดีกว่ากล่องโต้ตอบแบบไร้โหมด
// Display a modal dialog box with custom HtmlService content. var htmlOutput = HtmlService .createHtmlOutput('<p>A change of speed, a change of style...</p>') .setWidth(250) .setHeight(300); SpreadsheetApp.getUi().showModalDialog(htmlOutput, 'My add-on');
พารามิเตอร์
ชื่อ | ประเภท | คำอธิบาย |
---|---|---|
userInterface | Object | HtmlOutput
ซึ่งแสดงอินเทอร์เฟซที่จะแสดง |
title | String | ชื่อของกล่องโต้ตอบ จะลบล้างชื่อที่ตั้งค่าไว้โดยการเรียกใช้ setTitle() ในออบเจ็กต์ userInterface |
การให้สิทธิ์
สคริปต์ที่ใช้วิธีนี้ต้องได้รับสิทธิ์กับขอบเขตต่อไปนี้อย่างน้อย 1 รายการ
-
https://www.googleapis.com/auth/script.container.ui
showModelessDialog(userInterface, title)
เปิดกล่องโต้ตอบแบบไร้โหมดในเครื่องมือแก้ไขของผู้ใช้พร้อมด้วยเนื้อหาฝั่งไคลเอ็นต์ที่กําหนดเอง เมธอดนี้จะไม่ระงับสคริปต์ฝั่งเซิร์ฟเวอร์ขณะที่กล่องโต้ตอบเปิดอยู่ คอมโพเนนต์ฝั่งไคลเอ็นต์ต้องใช้โค้ดเรียกกลับแบบไม่พร้อมกันโดยใช้ google.script
API สําหรับ HtmlService
เพื่อสื่อสารกับสคริปต์ฝั่งเซิร์ฟเวอร์ หากต้องการปิดกล่องโต้ตอบแบบเป็นโปรแกรม ให้เรียกใช้
google.script.host.close()
ในฝั่งไคลเอ็นต์ของเว็บแอป HtmlService
หากต้องการข้อมูลเพิ่มเติม โปรดดูคู่มือสําหรับกล่องโต้ตอบและแถบด้านข้าง
กล่องโต้ตอบแบบไร้โหมดช่วยให้ผู้ใช้โต้ตอบกับตัวแก้ไขด้านหลังกล่องโต้ตอบได้ ในทางตรงกันข้าม กล่องโต้ตอบแบบโมดัลจะไม่ ในเกือบทุกกรณี กล่องโต้ตอบแบบโมดัลหรือแถบด้านข้างเป็นตัวเลือกที่ดีกว่ากล่องโต้ตอบแบบไร้โหมด
// Display a modeless dialog box with custom HtmlService content. var htmlOutput = HtmlService .createHtmlOutput('<p>A change of speed, a change of style...</p>') .setWidth(250) .setHeight(300); SpreadsheetApp.getUi().showModelessDialog(htmlOutput, 'My add-on');
พารามิเตอร์
ชื่อ | ประเภท | คำอธิบาย |
---|---|---|
userInterface | Object | HtmlOutput
ซึ่งแสดงอินเทอร์เฟซที่จะแสดง |
title | String | ชื่อของกล่องโต้ตอบ จะลบล้างชื่อที่ตั้งค่าไว้โดยการเรียกใช้ setTitle() ในออบเจ็กต์ userInterface |
การให้สิทธิ์
สคริปต์ที่ใช้วิธีนี้ต้องได้รับสิทธิ์กับขอบเขตต่อไปนี้อย่างน้อย 1 รายการ
-
https://www.googleapis.com/auth/script.container.ui
showSidebar(userInterface)
เปิดแถบด้านข้างในเครื่องมือแก้ไขของผู้ใช้ที่มีเนื้อหาฝั่งไคลเอ็นต์ที่กําหนดเอง เมธอดนี้จะไม่ระงับสคริปต์ฝั่งเซิร์ฟเวอร์ในขณะที่แถบด้านข้างเปิดอยู่ คอมโพเนนต์ฝั่งไคลเอ็นต์ต้องใช้โค้ดเรียกกลับแบบไม่พร้อมกันโดยใช้ API google.script
สําหรับ HtmlService
เพื่อสื่อสารกับสคริปต์ฝั่งเซิร์ฟเวอร์ หากต้องการปิดแถบด้านข้างแบบเป็นโปรแกรม ให้โทร
google.script.host.close()
ในฝั่งไคลเอ็นต์ของHtmlService
เว็บแอป
หากต้องการข้อมูลเพิ่มเติม โปรดดูคู่มือสําหรับกล่องโต้ตอบและแถบด้านข้าง
แถบด้านข้างจะแสดงอยู่ทางด้านขวาของเครื่องมือแก้ไขสําหรับผู้ใช้ที่สภาพแวดล้อมใช้ภาษาที่อ่านจากซ้ายไปขวาและด้านซ้ายของตัวแก้ไขสําหรับภาษาที่อ่านจากขวาไปซ้าย แถบด้านข้างทั้งหมดที่สคริปต์แสดงจะกว้าง 300 พิกเซล
// Display a sidebar with custom HtmlService content. var htmlOutput = HtmlService .createHtmlOutput('<p>A change of speed, a change of style...</p>') .setTitle('My add-on'); SpreadsheetApp.getUi().showSidebar(htmlOutput);
พารามิเตอร์
ชื่อ | ประเภท | คำอธิบาย |
---|---|---|
userInterface | Object | HtmlOutput
ซึ่งแสดงอินเทอร์เฟซที่จะแสดง |
การให้สิทธิ์
สคริปต์ที่ใช้วิธีนี้ต้องได้รับสิทธิ์กับขอบเขตต่อไปนี้อย่างน้อย 1 รายการ
-
https://www.googleapis.com/auth/script.container.ui