0

私のコードは以下です。入力テキストからデータを受け取ります。次に、Googleスプレッドシートのstackoverflow(入力に基づく)から最新のフィードを取得します。

RSS フィードの取得とその処理中に、外部の gif 画像をプログレス インジケーターとして表示するように設定しました。

問題は次のとおりです。コメント部分を削除すると。そのgif画像はユーザーには表示されず、コメントとして残っている場合。そのgif画像は、プロセスの完了後にアプリによってロードされており、その後も残っています。

プロセス(RSSのフェッチとその処理)が行われているときにのみ表示されるようにしたい。それで、それを可能にする方法はありますか?

function stackoverflow(){   
    var app =UiApp.createApplication().setHeight(380).setWidth(800);   
    app.setTitle("Enter tag name");
    var mydoc=SpreadsheetApp.getActiveSpreadsheet();    
    var txtBox = app.createTextBox().setFocus(true).setWidth("150").setId("ticker").setName("ticker");
    var mainpanel = app.createHorizontalPanel().setId('mainpanel');
    mainpanel.add(txtBox);
    var subbtn = app.createButton("Get posts!").setId("tick").setWidth("80");
    mainpanel.add(subbtn);
    var myloadingimg=app.createImage("http://schedule.msu.edu/img/InProgress.gif").setHeight("26").setWidth("26").setId("loadingimg");
    mainpanel.add(myloadingimg.setVisible(false));
    app.add(mainpanel);
    var panel = app.createVerticalPanel().setId('panel');    
    var submitHandler = app.createServerHandler("clicker").addCallbackElement(mainpanel);
    subbtn.addClickHandler(submitHandler);
    app.add(panel);
    mydoc.show(app);
}
function clicker(e){
   var app = UiApp.getActiveApplication();
   var txtBox = app.getElementById("ticker");
   app.getElementById("loadingimg").setVisible(true);
   var panel=app.getElementById("panel");
   app.remove(1);
   var panel = app.createVerticalPanel().setId('panel');    
   var stackurl = "http://stackoverflow.com/feeds/tag?tagnames="+e.parameter.ticker+"&sort=newest";
   var stackXML = UrlFetchApp.fetch(stackurl).getContentText();
   var stackDOC = Xml.parse(stackXML, false);
   var stackentry = stackDOC.getElement().getElements('entry');

   for (var i = 0; i < stackentry.length; i++) {    
       var result = stackentry[i];
       panel.add(app.createHTML("<br><b>Post Title: </b>"+ result.getElement('title').getText()+"<br>"));
       panel.add(app.createAnchor('', '') .setText("Post URL").setHref(result.getElement('link').getAttribute('href').getValue()));       
       panel.add(app.createHTML("<br>"));
      }

   var scroll = app.createScrollPanel().setPixelSize(760, 280);
   scroll.add(panel);
   app.add(scroll);
   //app.getElementById("loadingimg").setVisible(false);
   return app;
}

function onOpen() 
{  
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var menuEntries = [];
  menuEntries.push({name:'stackoverflow',functionName:'stackoverflow'});
  ss.addMenu("f2", menuEntries);
}
4

1 に答える 1