1

Google Apps Script でスタンドアロンの Web アプリを作成しています。アプリにある種のタスクフローがあります。最初にスプレッドシートから何かを検索し、収集したデータをどうするかをいくつか選択してから、スプレッドシートの行にユーザー入力を入力します。したがって、いくつかの状態の間を実行する必要があります。

私はウェブ技術について十分に知らないと確信しているので、これは非常にばかげた質問かもしれませんが、ここに行きます.

e.parameters は www.google.com&value=helloworld のような URL から来ていることを知っています。e.parameters.value は helloworld を返します。

問題: doGet(e) でパラメーター e の値を設定し、同じページまたは同じスクリプト プロジェクトで別のページ/スクリプトを呼び出すにはどうすればよいですか? つまり、 self&value=helloworld を呼び出すにはどうすればよいですか?

これを行う他の方法はありますか?GWT では、すべてをデータベースに保存し、セッションを Cookie に保持するだけです。しかし、Cookie は許可されていないので、Google Apps スクリプトで webapp の状態を維持するにはどうすればよいですか?

編集: これは、doGet(e) のパラメーターを渡す方法です。

function doGet(e) {
  var app = UiApp.createApplication();
  var newValue = 0;
  if(e.parameter == undefined || e.parameter.value == undefined){
    newValue = 1;
  }else{
    newValue = 1+parseInt(e.parameter.value);
  }
  var link = 'https://script.google.com/a/macros/domain.com/s/<insertidhere>/dev';
  var anchor = app.createAnchor('Next',link+'?&value='+newValue);
  anchor.setTarget('_self');
  app.add(anchor);
  var label = app.createLabel(newValue);
  app.add(label);
  return app;
}

リンク形式が少し変更されたため、 &value=... を連結する代わりに ? を追加する必要があります。最初にこのように ?&value1=helloworld&value2=....

使えませんか?バグがあり、リンクに古い形式を使用する必要があり、その古い形式を使用すると、それを使用するスクリプト所有者以外は禁止されると思いました。

うまくいけば、これは誰かが同様の問題を解決するのに役立ちます.

4

2 に答える 2

1

あなたはほとんど自分自身に答えました。URL パラメーターを Web アプリの URL の末尾に追加すると、スクリプトでそれらにアクセスできます。

次のような URL があるとします。

http://script.google.com/.../exec

URLにアクセスすると

http://script.google.com/.../exec?value=helloworld

、doGet内で、これらのURLパラメーターを次のように読み取ることができます

e.parameter.value;
于 2012-07-27T18:08:28.943 に答える
0

IMO - ? を使用する代わりに 複数のパラメーターを区切るには、すべての値を単一のアンカーに保持してみてください。最初の ? 他のものとその後のすべてを無視する可能性があります。あなたが見つけたものについて聞き返すのは素晴らしいことです。

于 2012-07-30T16:56:23.947 に答える