Ответы пользователя по тегу JavaScript
  • Запись значения в Google таблицу по щелчку кнопки с сайта?

    stomaks
    @stomaks
    Разработчик Google Apps Script (stomaks.me)
    Нужно создать функцию doGet(), в ней реализовать механизм изменения данных в таблице, затем развернуть скрипт как веб-приложение от своего имени и доступный для всех пользователей в интернете.

    Далее у себя на сайте вешаете обработчик событий на кнопку.
    В нем реализуете запрос к вашему веб приложению, передав нужные данные.

    Примерно так
    // В гугл таблице
    function doGet ( e ) {
      var ss0 = SpreadsheetApp.getActiveSpreadsheet();
      var ss0_s0 = ss0.getSheetByName("Лист1");
      
      var row = e.parameter.row;
      var val = e.parameter.val;
      
      ss0_s0.getRange("B" + row).setValue( val );
      
      return true;
    }
    
    
    
    // У вас на сайте
    $("#my-button-id").on("click", function () {
      var url = ""; // Тут указать url который получили при разворачивании веб приложения
      var row = 1; // Получить строку
      var val = "0"; // Получить данные
    
      // Отправить данные
      $.ajax({
        type: "GET",
        url: `${ url }?row=${ row }&val=${ val }`,
        dataType: 'jsonp',
        crossDomain: true,
        success: function ( data ) {}, // В случае успеха
        failure: function ( error ) {} // В случае провала
      });
    });


    https://g-apps-script.com - русскоязычный учебник по google apps script
    Ответ написан
  • JS GAS как отловить обращение к несуществующему свойству объекта?

    stomaks
    @stomaks
    Разработчик Google Apps Script (stomaks.me)
    Я решил этот вопрос так.

    Создал функцию через которую запускаю другие.
    function run ( fnc, arg ) {
    try {
        // Пробуем запустить функцию
        return CORE[fnc]( arg );
      } catch ( error ) {}
    }


    А все остальные функции записал в одну глобальную переменную.
    CORE = {
      func1: function ( data ) {
        // код
      },
      func2: function ( data ) {
        // код
      }
    };


    Далее когда мне нужно вызвать какую-то функцию, я обращаюсь к run передаю ей название функции и параметры.
    run в свою очередь пробует получить и запустить функцию из глобальной переменной, а ошибки отлавливаю при помощи try catch.

    В моем случае я имею возможность запустить функцию. лежащую в любой иерархии CORE.obj.obj.func1( arg );
    Если интересно, пишите расскажу как это сделать.

    ___
    https://g-apps-script.com - русскоязычный учебник по google apps script
    Ответ написан