Google App Script Debugger не работает с обратным вызовом ClickHandler - PullRequest
0 голосов
/ 30 июня 2011

Я следовал учебному пособию по приложению Google здесь , которое представляет собой очень простой скрипт с двумя функциями.showDialog (который представляет диалоговое окно с текстовым полем и кнопкой отправки) и respondToSubmit(e), который обрабатывает кнопку отправки и добавляет введенные данные в электронную таблицу.Он работает нормально.

То, что не работает, это отладчик обратного вызова.Поэтому я помещаю точку останова в обе функции и запускаю функцию showDialog.Отладчик запускает и останавливает выполнение в точке останова.Я нажимаю продолжить, чтобы я мог взаимодействовать с недавно открытым диалоговым окном.Однако, когда я нажимаю кнопку отправки, отладчик не запускается снова.Функция respondtoSubmit(e) выполнена.Отладчик просто не останавливается на точках останова.

Есть ли проблема с отладкой подобных обратных вызовов или вы можете отлаживать только одну функцию за раз?

Ответы [ 4 ]

1 голос
/ 20 октября 2011

На данный момент отладчик имеет некоторые неожиданные поведения.По большей части, кажется, что только точки останова соблюдаются во время вызовов из редактора сценариев, поэтому для отладки вашего обработчика событий вы должны вызывать его из отладчика, а не из пользовательского интерфейса.Если вам нужно просмотреть переменные, такие как объект события, например, переданный в функцию, попробуйте добавить эту строку в ваш обработчик, где вы обычно ставите точку останова: Logger.log(Utilities.jsonStringify(e)); Затем просмотрите журнал из редактора сценариев после выполнения.

0 голосов
/ 30 мая 2014

Я сейчас использую BetterLog

https://sites.google.com/site/scriptsexamples/custom-methods/betterlog#TOC-Documentation-Support-Resources

это действительно лучше

0 голосов
/ 22 ноября 2012

Для справки Utilities.jsonStringify (e) запрещен, используйте вместо этого JSON.stringify () и JSON.parse ().

0 голосов
/ 23 июля 2012

Мне кажется, что Logger тоже не работает, если не запускать из редактора скриптов.Мне удалось Browser.msgbox(Utilities.jsonStringify(e)), который принес (ожидаемый) результат:

{"parameter":{"clientY":"45","clientX":"37","eventType":"click","ctrl":"false","meta":"false","source":"u12053277590","button":"1","alt":"false","myTextBox":"babi","screenY":"381","screenX":"598","shift":"false","y":"13","x":"33"}}

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