2013-02-16 78 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

相关问题