2013-02-16 116 views
7

已經爲此搜索了高和低。我有一個基本的HTML/CSS/JS的網頁。我希望用戶能夠訪問該頁面,並在打開頁面時調用我製作的Google腳本,該腳本從電子表格中獲取信息並在頁面上顯示一些信息。我希望我不需要像谷歌的教程那樣設置任何喜歡的東西,因爲它們對我都沒有幫助。如何從網頁調用Google Apps腳本頁面

我的網頁---->谷歌腳本---->谷歌電子表格
我的網頁< ----谷歌腳本< ----谷歌電子表格

用戶應該能夠選擇一個項目顯示在網頁上(從電子表格填充項目),然後單擊一個按鈕,該按鈕允許用戶使用從所選項目導出的URL輸入新頁面。

這實際上是一個聊天室程序,聊天室存儲在電子表格中。我希望用戶能夠創建一個新的聊天室,並更新谷歌電子表格。

回答

15

查看使用GET參數。 https://stackoverflow.com/a/14736926/2048063

Here's a previous question on the topic

您可以使用e.parameter訪問您的doGet(e)函數中由GET傳遞的參數。如果你打電話http://script.google......./exec?method=doSomething,然後

function doGet(e) { 
    Logger.log(e.parameter.method); 
} 

doSomething將被寫入日誌,在這種情況下。

從腳本返回數據可以使用ContentService,它允許您提供JSON(我推薦)。在我看來,JSON最容易在GAS端完成,以及在客戶端使用。

最初的「填充列表」調用看起來像這樣。我會寫在jQuery中,因爲我覺得它很乾淨。

var SCRIPT_URL = "http://script.google.com/[....PUT YOUR SCRIPT URL HERE....]/exec"; 
$(document).ready(function() { 
    $.getJSON(SCRIPT_URL+"?callback=?", 
       {method:"populate_list"}, 
       function (data) { 
       alert(JSON.stringify(data)); 
       }); 
}); 

而產生這個的相應GAS。

function doGet(e) { 
    if (e.parameter.method=="populate_list") { 
    var v = {cat:true,dog:false,meow:[1,2,3,4,5,6,4]}; //could be any value that you want to return 
    return ContentService.createTextOutput(e.parameter.callback + "(" + JSON.stringify(v) + ")") 
     .setMimeType(ContentService.MimeType.JAVASCRIPT); 
    } 
} 

該方法被稱爲JSONP,它被jQuery支持。當你在你的URL後面加上?callback=?時,jQuery會識別它。它將您的輸出封裝在回調函數中,該函數允許將該函數作爲參數在您的站點上運行。在這種情況下,回調函數是在function (data) {行中定義的函數。

+0

儘管我仍然迷路,但我相信你的回答是正確的。 – carter 2013-02-16 22:39:33

+0

我添加了幾個示例代碼段。希望這可以幫助! – 2013-02-16 23:12:26

+0

絕對很棒的答案菲爾! – ScampMichael 2013-02-16 23:24:51

相關問題