如何获取隐藏对​​象的值

时间:2014-01-08 06:05:01

标签: google-apps-script

我需要在google脚本中使用全局变量来保存页面ID,就像字符串一样。 Here,他们建议为此目的使用隐藏对象。我可以创建这个对象并设置它的值。

实现相同的代码:

function doGet(e) {
  var app = UiApp.createApplication();
  //Get current indentificator
  var mid = 'page-id';
  app.add( app.createHidden('mid').setValue(mid).setId('mid'));
  return app;
}

但是如何从另一个函数中获取此值?

例如:

function maketbl(){
  var app = UiApp.getActiveApplication();
  app.(?!)
}

谢谢!

2 个答案:

答案 0 :(得分:1)

我看到您的要求是具有与全局变量类似的功能。我建议您使用脚本属性,用户属性或缓存服务来完成此专长。一个例子如下

ScriptProperties.setProperty('special', 'sauce'); // Use this to set the property
var specialValue = ScriptProperties.getProperty('special'); // use this to access the property

答案 1 :(得分:0)

尝试以下代码:

function doGet(e) {
  var app = UiApp.createApplication();  
  var mid = 'page-id';
  var hidden = app.createHidden('mid').setValue(mid).setId('mid');
  app.add(hidden);

  //Create your handler
  var handler = app.createServerHandler('maketbl');
  handler.addCallbackElement(hidden)

  //Create a button to trigger your function
  app.add(app.createButton().setText("go forest").addClickHandler(handler));

  return app;
}

function maketbl(e){
  var app = UiApp.getActiveApplication();
  //Retrieve the hidden field
  var hidden = app.getElementById("mid");

  //Show the value stored at e.parameter.mid  where mid is the name of the field
  var dialogBox  = app.createDialogBox().setText(e.parameter.mid);  

  dialogBox.setPopupPosition(100, 100);   
  dialogBox.show();
  return app;
}

实时版here