Нажмите кнопку «Закрыть», чтобы закрыть окно и вернуть фокус в скрипт приложения Google для работы с таблицами - PullRequest
0 голосов
/ 28 июня 2019

Когда я нажимаю «Отправить», фокус возвращается к электронной таблице, и данные загружаются, но диалоговое окно не закрывается. Я использовал google.script.host.close(), но это не перенесет фокус обратно на электронную таблицу.

<!DOCTYPE html>
<html>
  <head>
    <base target="_top">
  </head>
  <body>
<form >
  Select Client:
  <div>
  <select id="optionList" name="client">   
  </select>
  </div> 
   Select Action:
  <div>
  <select id="actionList" name="action">   
  </select>
  </div> 
  Username:
  <input type="text" name="username"> <br />
  Password:
  <input type="password" name="password"> <br />
  <input type="button" value="OK" onclick="google.script.run.callNumbers(this.parentNode);google.script.host.editor.focus();" />
</form>
  </body>

 <script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js">
</script>
<script>
    // The code in this function runs when the page is loaded.
    $(function () {
        google.script.run.withSuccessHandler(buildOptionList)
            .getClients();
            google.script.run.withSuccessHandler(buildActionList)
            .getActions();
    });

    function buildOptionList(clients) {
        var list = $('#optionList');
        list.empty();
        for (var i = 0; i < clients.length; i++) {
            list.append(new Option(clients[i]));
        }
    }

     function buildActionList(actions) {
        var list = $('#actionList');
        list.empty();
        for (var i = 0; i < actions.length; i++) {
            list.append(new Option(actions[i]));
        }
    }
</script>


</html>
    function html(){
       var html = HtmlService.createHtmlOutputFromFile('load');
       SpreadsheetApp.getUi() // Or DocumentApp or SlidesApp or FormApp.
       .showModalDialog(html, 'Input API Creddentials');
    }

Я хочу вернуть фокус обратно на электронную таблицу после закрытия диалога. Я попытался использовать шаблон Google html вместо диалога в режиме песочницы, но это не сработало.

Когда я использую google.script.host.editor.focus() и google.script.host.close() вместе, фокус не возвращается на лист.

1 Ответ

0 голосов
/ 28 июня 2019

Я просто использую обработчик успеха, чтобы закрыть мой диалог после вызова функции, и это сработало.

<input type="button" value="OK" onclick="google.script.run.withSuccessHandler(google.script.host.close).callNumbers(this.parentNode);google.script.host.editor.focus();" />

Это закроет диалоговое окно и вернет фокус на электронную таблицу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...