-1

GAS のドキュメントは実際にはつまらないので、少なくともハンドラーに渡されるパラメーターに関する情報を見つけようとするかもしれないと思いました。この些細な例は、私が何をしようとしているのかを示しています。

MyGui は、Gui ビルダーを使用して構築されます。
ボタンが含まれています - btn にはクリック コールバックがあります - btn_click また、TextArea も含まれています - txtArea1

シンプル

function doGet() {
  var app = UiApp.createApplication();
  app.add(app.loadComponent("MyGui"));
  return app;
}

function btn_click(e) {

  var app = UiApp.getActiveApplication();
  var ta = app.getElementById('txtArea1');

  if(!e)
  {
    ta.setText('null object');
  }
  else
  {
    ta.setText(e.toDebugString());
  }

  return app;
}

愚かな私!ドキュメンテーションでは、GAS コンポーネントは GWT に基づいて構築されており、GWT は Java ベースであると繰り返し述べられているため、すべてが java.lang.Object であり、toDebugString() を呼び出して、ハンドラー関数に渡されるオブジェクト。

申し訳ありませんが、私は GAS の使用をあきらめる寸前です。今はただのおもちゃです。プレイする時間がありません。実際には、やらなければならないことがあります。

4

4 に答える 4

1

UiAppのクライアント側はGWTウィジェットです。サーバー側がGWTJavaオブジェクトで構成されているとはどこにも述べていません(そうではありません)。また、それらがどのように機能するように文書化されているかに基づいても意味がありません。サーバーオブジェクトは、クライアントオブジェクトへの参照にすぎません。コマンドを関連付けるために使用できる参照であり、コマンドはクライアントに送信されます。サーバーの「ウィジェット」には、コマンドを格納しているクライアントウィジェットのID以外の情報がないため、デバッグ情報はありません。

于 2012-12-28T14:49:13.457 に答える
1

UI 内のオブジェクトのロギングを可能にするライブラリSmartDebugを覚えています。ライブラリを追加して、これを試してください:

function doGet() {
var app = UiApp.createApplication();
  SmartDebug.enable(true);
  SmartDebug.addLogWidgetToApplication();
  app.add(app.loadComponent("MyGui"));
  return app;
}

function btn_click(e) {
   var app = UiApp.getActiveApplication();
  if(!e) {
    SmartDebug.logMessage('null');
  } else {
    SmartDebug.logObject(e,'event');
  }
  return app;
}

ここに私が得たものがあります:

11:19:55: event.parameter.clientY: 161
11:19:55: event.parameter.clientX: 143
11:19:55: event.parameter.eventType: click
11:19:55: event.parameter.ctrl: false
11:19:55: event.parameter.meta: false
11:19:56: event.parameter.source: Button1
11:19:56: event.parameter.button: 1
11:19:56: event.parameter.alt: false
11:19:56: event.parameter.screenY: 270
11:19:57: event.parameter.screenX: 143
11:19:57: event.parameter.y: 18
11:19:57: event.parameter.shift: false
11:19:57: event.parameter.x: 92
于 2012-12-28T11:25:11.473 に答える
0

標準の Javascript toSourceメソッドを使用して、一部のオブジェクトをデバッグできます。新しい web-app スクリプトを作成するときに与えられるデフォルトのサンプル コードをデバッグすると、これが toSource によって得られるものです。

({parameter:{clientY:"22", clientX:"17", eventType:"クリック", ctrl:"false", meta:"false", source:"u29169455861", button:"1", alt:" false", screenY:"148", screenX:"381", y:"18", shift:"false", x:"13"}})

于 2012-12-28T14:53:00.160 に答える
0

GUI ビルダーでコールバック要素をボタンに関連付けましたか? ボタンを FormPanel に配置すると、FormPanel のすべてのフィールドがパラメーターとして送信されます。単純なボタンの場合は、コールバック要素を追加して、GUI ビルダーにあるイベント パラメーターとして取得する必要があります。これは、発生するイベントの下にある小さな白いボックスです。イベントについて。

于 2012-12-28T09:04:14.293 に答える