Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/384.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Web应用程序HTML、JS+;谷歌应用程序脚本:如何返回到我的应用程序后返回天然气?_Javascript_Html_Google Apps Script_Google Sheets_Phonegap - Fatal编程技术网

Javascript Web应用程序HTML、JS+;谷歌应用程序脚本:如何返回到我的应用程序后返回天然气?

Javascript Web应用程序HTML、JS+;谷歌应用程序脚本:如何返回到我的应用程序后返回天然气?,javascript,html,google-apps-script,google-sheets,phonegap,Javascript,Html,Google Apps Script,Google Sheets,Phonegap,我正在使用HTML、CSS和JavaScript构建一个web应用程序,并使用Google电子表格作为数据库。我计划使用PhoneGap将我的web应用程序变成一个真正的应用程序 我能够使用谷歌可视化API阅读我的谷歌工作表,现在我正在研究写作选项:我在谷歌电子表格中使用了一个带有谷歌应用脚本的函数集,它工作正常 这就是我的应用程序的工作方式和我需要的: 我查询我的第一个谷歌电子表格(数据库) 如果我找不到我需要的东西,我可以提出请求 我发送请求:表单的操作将我的数据发送到GoogleApps脚

我正在使用HTML、CSS和JavaScript构建一个web应用程序,并使用Google电子表格作为数据库。我计划使用PhoneGap将我的web应用程序变成一个真正的应用程序

我能够使用谷歌可视化API阅读我的谷歌工作表,现在我正在研究写作选项:我在谷歌电子表格中使用了一个带有谷歌应用脚本的函数集,它工作正常

这就是我的应用程序的工作方式和我需要的:

  • 我查询我的第一个谷歌电子表格(数据库)
  • 如果我找不到我需要的东西,我可以提出请求
  • 我发送请求:表单的操作将我的数据发送到GoogleApps脚本代码
  • 气体将我的数据写入第二个谷歌电子表格(注册)
  • 煤气会把我送回我的页面
  • 页面在屏幕上发送反馈
  • 正如你可以理解的,我不能回到我的网页。。。我不知道是否有任何方法或函数可以做到这一点。我唯一发现的是使用
    ContentService
    使页面“编写另一个表单并使用JavaScript发送”,但我认为这不是最好的解决方案

    我会把我的代码贴在这里。。。希望有人能帮助我

    function doPost(e){
     var sheet = SpreadsheetApp.openById("myID").getSheetByName('SheetName');
     var column = 1; 
     var colArray = sheet.getRange(2, column, sheet.getLastRow()).getValues();
     var maxi = Math.max.apply(Math, colArray);
    
    
      var id = maxi+1;
      var name = e.parameter['name'];
      var surname = e.parameter['surname'];
      var serial = e.parameter['serial'];
      var eMail = e.parameter['mail'];
      var text = e.parameter['text'];
      var area = e.parameter['area'];
      var date = new Date();
      var ans = ""
      var flag = "Work In Progress";
    
      var vals = [id, date, name, surname, serial, eMail, area, text, ans, flag];
    
      var sheetObj = sheet.appendRow(vals);
    
      // return ContentService.createTextOutput(someOutput);
    
    在回程线上,我应该返回我的web应用程序,但我找不到方法。有人能帮我或给我一些建议吗

    非常感谢你的帮助


    这是你问题的解决方案

    而不是使用
    返回ContentService.createTextOutput(someOutput)

    使用
    HtmlService
    返回表单

    return HtmlService.createHtmlOutputFromFile('redirect').setSandboxMode(HtmlService.SandboxMode.IFRAME);
    
    你的HTML文件应该是这样的

    更新:
    redirect.html
    应与应用程序脚本文件位于同一项目中

    redirect.html

    <html>
    <head>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.2/jquery.min.js"></script>
    <title>This Is A Sample Title</title>
    <script>
    function test()
    {
        window.location.href = "www.hostname.com";
    }
    </script>
    </head>
    <body onload="test()">
    Login
    </body>
    </html>
    
    
    这是一个示例标题
    功能测试()
    {
    window.location.href=“www.hostname.com”;
    }
    登录
    

    看看这是否对您有效。

    只是为了确保,
    redirect.html
    文件必须位于GAS的同一个项目中,它将指向我的页面,对吗?代码显示页面(我可以看到“登录”),但
    test()
    函数不起作用。。。我甚至试过用
    window.location.replace
    替换,但什么都没用…你用你的表单url替换了
    www.hostname.com
    吗?很有效!他只需要使用https协议的整个地址。只是一个问题:当它重新加载我的页面时,该地址是我的谷歌脚本中的一个,并且该页面不是在移动版本中加载的,而是在自定义版本中加载的。。。