2012-11-01 113 views
1

操作系统:Windows 7Google Apps脚本停止工作

浏览器:Firefox和Chrome

我使用谷歌Apps脚本从电子表格收集数据并显示他们对我的谷歌网站几页该页面作为Google Apps脚本小工具的一部分。最近(在过去几天内),它应该从电子表格中显示的信息未显示。这只是空白。脚本的其余部分似乎运行良好,但很难说清楚。

自从上一个工作版本以来,我没有更改过任何代码(我已经使用此设置和代码大约2个月,之前它几乎完美地工作)。我调试了获取数据的函数,它们仍然正常工作,并且数据的格式与以前相同。

这是我一直在使用的代码,如果有帮助。如果有问题,网站流量每月大约有200次访问。

function doGet() { 
    var t=HtmlService.createTemplateFromFile('Practices'); 
    return t.evaluate(); 
    } 


    function getData() { 
    var sheet=SpreadsheetApp.openById('CORRECT SPREADSHEET KEY').getSheetByName('Practices'); 
    return sheet.getDataRange().getValues(); 
} 

这是Practices.html文件中的代码块,我认为它不工作。 (这些数据都没有显示出来,但其余部分都是)

<div class="carousel" style="display:none;"> 
    <div class="items"> 
    <? var date= new Date(); ?> 
    <? var data = getData(); 
    for (var i = 1; i < data.length; ++i) { ?> 


     <div> 
     <h3><?= data[i][0] ?></h3> 
     <p>Date: <?=data[i][1].getMonth()+1 ?>/<?=data[i][1].getDate()?>/<?=data[i][1].getFullYear() ?></p> 
     <p><?= data[i][2] ?> </p> 
     </div> 
    <? } ?> 


    </div> 
    </div> 

我知道有一个显示:无;在这个代码中。它被切换到稍后显示。出于某种原因,如果显示:无;不在那里它只显示第一张幻灯片,但没有后面的幻灯片。

更新:检查页面的html和所有的数据在那里,有适当的标签和结构。这导致我认为这是我用来设置动画和更改显示设置的jQuery脚本。我使用相同的jquery函数创建了另一个页面,但不必从电子表格中获取数据,并且工作正常。虽然,这不是通过应用程序脚本小工具。

+0

如果您将应用程序作为独立的网络应用程序而不是网站小工具运行,那么这有什么区别吗?我也怀疑这块代码 - data [i] [1] .getMonth()+ 1。你怎么能直接从电子表格调用一个数组数组的getMonth()?那里有日期对象吗? –

+0

嗯Arun,日期对象应该在那里。 Range.getValues总是返回单元格的解析值,例如字符串,数字,布尔值*和*日期。这只是** Apps脚本中最老的** API。 –

回答

0

我已经创建了一个示例电子表格和一个脚本与您的确切代码,减去显示:你提到的没有你的问题风格。它确实工作得很好。这表明你的问题在别的地方。

这里是电子表格: https://docs.google.com/spreadsheet/ccc?key=0AhfBwM8xuKeSdElFSXpIWllKekRyc0EwdF9uZ0VLanc

这里是脚本: https://script.google.com/macros/s/AKfycbwH9zKHFLQ2u_I21xLkG8xgrr_F_Ir_oioE8mOuW4H7kc8WEnVs/exec

您是否尝试过检查使用Chrome开发者工具或Firefox的,等等,看是否结构是有你的网页? 您可能还想看看您的网页代码,然后按here所述致电t.getCode()进行评估。

编辑

如果你正在使用jQuery你HtmlService,这可能是问题。最近发布的Apps Script(没有发布说明)已经打破了jQuery的许多功能(以及其他一些功能),但没有错误消息,它只是默默无闻。现在我已经放弃了在Apps脚本中使用jQuery。现在我建立的所有新应用程序都使用普通的JavaScript,因为它更容易查明(和解决方法)错误的方法。

+0

我知道代码的作品。它已经工作了2个多月。我只是想弄清楚为什么它在同一时间突然停止在多个浏览器上。我试着t.getcode(),它看起来找到。我也尝试使用firefox检查页面,但我不确定发生了什么,或者我应该寻找什么。 – user1791695

+0

更新:我使用检查元素来查看html,所有应该在那里的结构。这可能是导致问题的jQuery代码。 (应该从无显示的项目切换显示等等) – user1791695

+0

所以你使用jQuery?这可能是问题,我用新的信息更新了我的答案。 –