2012-07-27 70 views
1

我正在Google Apps腳本中創建獨立的Web應用程序。我在應用程序中有一些任務流。首先從電子表格中搜索某些內容,然後選擇如何處理收集的數據,然後用一些用戶輸入填充電子表格行。所以我需要在幾個州之間運行。更改應用程序的狀態腳本webapp

我很確定我對網絡技術知之甚少,所以這可能是一個非常愚蠢的問題,但這裏就是這樣。

我知道e.parameters來自像這樣的網址www.google.com & value = helloworld ,e.parameters.value返回helloworld。

所以,現在的問題是:如何在doGet(e)中設置參數e值,並在同一個腳本項目中調用相同的頁面甚至是不同的頁面/腳本?換句話說,我該怎麼稱呼自己& value = helloworld?

有沒有其他方法可以做到這一點?在GWT中,我只是將所有內容都存儲到數據庫中,並保持cookie中的會話。但不允許cookies,所以如何保持谷歌應用程序腳本中的Web應用程序的狀態?

編輯:這是我如何通過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; 
} 

該鏈接的格式已經改變了一點,所以代替串連&值= ...你需要補充?首先像這樣? & value1 = helloworld & value2 = ....

無法使用?導致我認爲存在缺陷,並且我需要使用舊格式作爲鏈接,並使用該舊格式作爲腳本所有者以外的任何人使用它。

希望這可以幫助有人解決類似的問題。

+0

將新的格式的默認鏈接更改爲舊的,如下所示: '新格式:/ macros/s/{服務密鑰}/exec' 舊格式:/ macros/exec?service = {service key} 錯誤是最壞的n00bs ... – user1548175 2012-07-27 19:59:51

回答

1

你幾乎已經回答了你自己。將URL參數追加到Web應用程序URL的末尾,您可以在腳本中訪問它們。

比方說,你有一個像

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

一個URL當你點擊URL

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

, 內的doGet,您可以閱讀這些URL參數爲

e.parameter.value; 
+0

Thanx for reply!其實這就是我所做的。原來,http://script.google.com/.../exec?value = helloworld'不起作用。相反,我需要使用https://sites.google.com/macros/exec?service = ...&value = helloworld'。這會拋出有關iPad中某些平臺中缺少頁面的錯誤.. – user1548175 2012-07-27 19:31:19

+0

此[錯誤](http://code.google.com/p/google-apps-script-issues/issues/detail?id=1518)看起來像相同我遇到的問題。 – user1548175 2012-07-27 19:49:33

+0

只有當您在Google網站中插入腳本時纔會發生該錯誤,並且必須使用瀏覽器跨站點權限。通過在sites.google.com域中保留網站和腳本,瀏覽器很高興。 – 2014-05-31 17:13:59

0

IMO - 而不是使用?爲了分離多個參數,請嘗試將所有值保存在單個錨點中,並將其與您選擇的其他字符分隔符(例如#自第一個之後的#)分開。它可能會忽略其他的一切事情。聽到你發現的東西會很棒。