У меня есть таблица Google, где пользователь может изменить определенные значения, а затем нажать кнопку. После нажатия кнопки эти записи перемещаются на другие листы в зависимости от выбора пользователя с помощью скрипта Google Apps.
Теперь я хочу избежать ситуации, когда пользователь внес изменения, но не нажал кнопку и не закрыл лист или не перешел на другой лист. Итак, есть ли событие, которое я могу зафиксировать и проверить лист перед его закрытием?
Спасибо
Ответ 1 · Teyam
Вы можете попробовать добавить диалоговые окна запросов.
Чтобы оценить ответ пользователя, зафиксируйте возвращаемое значение для prompt(), затем вызовите _ 2_, чтобы получить ввод пользователя, и сравнить возвращаемое значение для _ 3_ в _4 _ а> перечисление.
Вот пример кода:
function onOpen() {
SpreadsheetApp.getUi() // Or DocumentApp or FormApp.
.createMenu('Custom Menu')
.addItem('Show prompt', 'showPrompt')
.addToUi();
}
function showPrompt() {
var ui = SpreadsheetApp.getUi(); // Same variations.
var result = ui.prompt(
'Let\'s get to know each other!',
'Please enter your name:',
ui.ButtonSet.OK_CANCEL);
// Process the user's response.
var button = result.getSelectedButton();
var text = result.getResponseText();
if (button == ui.Button.OK) {
// User clicked "OK".
ui.alert('Your name is ' + text + '.');
} else if (button == ui.Button.CANCEL) {
// User clicked "Cancel".
ui.alert('I didn\'t get your name.');
} else if (button == ui.Button.CLOSE) {
// User clicked X in the title bar.
ui.alert('You closed the dialog.');
}
}
Ответ 2 · рейтинг -1 · Riyafa Abdul Hameed
Единственное, что можно сделать, это то, что вы можете вызывать следующую каждую минуту с помощью триггер времени, чтобы узнать, на каком листе находится пользователь:
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var sheetName = sheet.getName()
Если пользователь находится на другом листе, вы можете проверить свой лист.