我有這種情況。我幾個月前完成了一個腳本,該腳本仍在谷歌網站上運行。使用doGet功能是:執行腳本
function doGet(e) {
var myapp = UiApp.createApplication();
var mygrid = myapp.createGrid(5, 2);
var listboxAssociazione=myapp.createListBox().setId("listboxAssociazione").setName("listboxAssociazione");
var labelAssociazione=myapp.createLabel("Associazione").setId("Associazione");
var listboxMeseFatturato=myapp.createListBox().setId("listboxMeseFatturato").setName("listboxMeseFatturato");
var labelMeseFatturato=myapp.createLabel("Mese da fatturare").setId("Mese da fatturare");
var listboxAnnoFatturato=myapp.createListBox().setId("listboxAnnoFatturato").setName("listboxAnnoFatturato");
var labelAnnoFatturato=myapp.createLabel("Anno").setId("Anno");
var buttonCalcola=myapp.createButton().setText("Calcola").setId("CalcolaFattura");
var labelLavoroInCorso=myapp.createLabel("").setId("labelLavoroInCorso").setStyleAttribute('color', 'blue');
mygrid.setWidget(0, 0,labelAssociazione);
mygrid.setWidget(0, 1, listboxAssociazione);
mygrid.setWidget(1, 0, labelMeseFatturato);
mygrid.setWidget(1, 1, listboxMeseFatturato);
mygrid.setWidget(2, 0, labelAnnoFatturato);
mygrid.setWidget(2, 1, listboxAnnoFatturato);
mygrid.setWidget(3, 1, buttonCalcola);
mygrid.setWidget(4, 1, labelLavoroInCorso);
var p=DocsList.getFolders();
var totcartelle = p.length;
var trovato= false;
var cartellaAssociazioni;
for(var j=0;j<totcartelle && trovato==false;j++){
var prova=p[j].getId();
if(p[j].getId()=="0B-H4Ioaio5w5YTg3MGFkOWQtMzYzNy00ZTFhLWEzY2YtZTVlNzIwYWJhMmJm"){
trovato=true;
cartellaAssociazioni=p[j];
}
}
var cartelle =cartellaAssociazioni.getFolders();
var lunghezza = cartelle.length;
for(var i = 0; i < lunghezza; i++) //these arrays are zero based it looks like
{ var prova=cartelle[i].getName();
listboxAssociazione.addItem(prova);
}
//Aggiunta dei mesi alla listbox
listboxMeseFatturato.addItem("Gennaio");
listboxMeseFatturato.addItem("Febbraio");
listboxMeseFatturato.addItem("Marzo");
listboxMeseFatturato.addItem("Aprile");
listboxMeseFatturato.addItem("Maggio");
listboxMeseFatturato.addItem("Giugno");
listboxMeseFatturato.addItem("Luglio");
listboxMeseFatturato.addItem("Agosto");
listboxMeseFatturato.addItem("Settembre");
listboxMeseFatturato.addItem("Ottobre");
listboxMeseFatturato.addItem("Novembre");
listboxMeseFatturato.addItem("Dicembre");
//Aggiunta dell'anno di fatturazione
var d= new Date();
var annoAttuale=parseInt(d.getFullYear());
listboxAnnoFatturato.addItem(""+annoAttuale);
listboxAnnoFatturato.addItem(""+(annoAttuale-1));
var formpanel=myapp.createFormPanel().setId("form");
var serverClickHandler = myapp.createServerClickHandler('GeneraFattura');
serverClickHandler.addCallbackElement(formpanel);
buttonCalcola.addClickHandler(serverClickHandler);
var serverClickHandlerStatus = myapp.createServerClickHandler('ChangeStatus');
serverClickHandlerStatus.addCallbackElement(formpanel);
buttonCalcola.addClickHandler(serverClickHandlerStatus);
formpanel.add(mygrid);
myapp.add(formpanel);
return myapp;
}
//Function to disable the button to avoid double click
function ChangeStatus(e){
var app = UiApp.getActiveApplication();
app.getElementById("labelLavoroInCorso").setText("Attendere! Calcolo della richiesta di pagamento in corso...");
app.getElementById("CalcolaFattura").setEnabled(false);
return app;
}
現在我的問題是,當我在網站上點擊按鈕「Calcola」,似乎功能「GeneraFattura」跑一定數量的隨機時間而不是1
如果我從上面的表格所填報的
var valoreAssociazione = "Volley";
var valoreMese="May";
var valoreAnno = "2012";
,而不是相同的3個參數運行在谷歌網站上的腳本編輯器相同的功能,它工作正常。
當我說它工作正常我的意思是在函數「GeneraFattura」只有一行我複製電子表格。如果我從腳本編輯器運行腳本,則輸出是電子表格的一個副本,如果我從網站運行腳本,我會得到5 6份電子表格。
你認爲哪裏是問題?爲什麼谷歌網站腳本編輯器執行和腳本執行嵌入在谷歌網站之間的不同行爲?
預先感謝您