0

ここでは、2つの関数を備えた非常に単純なスクリプトであるGoogleAppScriptチュートリアルに従いました。showDialog(テキストフィールドと送信ボタンのあるダイアログボックスを表示します)、respondToSubmit(e)送信ボタンを処理し、入力したデータをスプレッドシートに追加します。正常に動作します。

動作していないように見えるのは、コールバックのデバッガーです。そこで、両方の関数にブレークポイントを設定して、showDialog関数を開始します。デバッガーが起動し、ブレークポイントで実行を停止します。[続行]をクリックして、新しく開いたダイアログボックスを操作できるようにします。ただし、送信ボタンをクリックしても、デバッガーが再起動しません。respondtoSubmit(e)関数が実行されます。デバッガーはブレークポイントで停止しません。

このようなコールバックのデバッグに問題がありますか、それとも一度に1つの関数しかデバッグできませんか?

4

3 に答える 3

1

参考のために、Utilities.jsonStringify(e)は非推奨です。代わりに、JSON.stringify()とJSON.parse()を使用してください。

于 2012-11-22T15:30:30.713 に答える
0

現在のところ、デバッガーには予期しない動作がいくつかあります。ほとんどの場合、スクリプトエディターからの呼び出し中にのみブレークポイントを尊重するように見えるため、イベントハンドラーをデバッグするには、UIではなくデバッガーから呼び出す必要があります。たとえば、関数に渡されるイベントオブジェクトなどの変数を確認する必要がある場合は、通常はブレークポイントを設定するハンドラーにこの行を追加してみてください Logger.log(Utilities.jsonStringify(e)); 。実行後、スクリプトエディターからログを表示します。

于 2011-10-20T19:31:13.803 に答える
0

スクリプトエディタから実行しない限り、ロガーも機能しないようです。私は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"}}

于 2012-07-23T14:40:09.250 に答える