繁体   English   中英

我如何在谷歌应用程序脚本中重定向到另一个 .html

[英]how i can redirect to another .html in google app script

我正在尝试使用 Gas 和电子表格进行登录,我发现它可以工作,但是当密码和用户正确时,它会向我显示警报(是的),但是当 usr/pass 正确时,我需要重定向到另一个页面(在气体命名页面内) . 如果有人可以帮助我

登录.html

<!DOCTYPE html>
<html>
  <head>
    <base target="_top">
    <?!= include('LogIN-CSS') ?>
    <link href="//maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" rel="stylesheet" id="bootstrap-css">
    <script src="//maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js"></script>
    <script src="//cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
  </head>
  

  <body>
  
    <div class="wrapper fadeInDown">
      <div id="formContent">
        <!-- Tabs Titles -->
    
        <!-- Icon -->
        <div class="fadeIn first">
       
        </div>
    
        <!-- Login Form -->
        
        <form id="myForm" onsubmit="handleFormSubmit(this)">
          <input type="text" id="username" class="fadeIn second" name="username" placeholder="username">
          <input type="text" id="password" class="fadeIn third" name="password" placeholder="password">
          <input type="submit" id="btn" class="fadeIn fourth" value="Log In">
        </form>
   
    
      </div>
    </div>
        
    
    
  </body>
  
  <script>
  
        // Prevent forms from submitting.
      function preventFormSubmit() {
        var forms = document.querySelectorAll('form');
        for (var i = 0; i < forms.length; i++) {
          forms[i].addEventListener('submit', function(event) {
            event.preventDefault();
          });
        }
      }
      window.addEventListener('load', preventFormSubmit);

      function handleFormSubmit(formObject) {
        google.script.run.withSuccessHandler(alertTest).checkAccountCredentials(formObject);
      }
      function alertTest(arg) {
        arg ? acceptedAccountCredentials() : rejectedAccountCredentials();
      }
      function acceptedAccountCredentials()
      {
        alert("Yes");
      }
      function rejectedAccountCredentials()
      {
        alert("No");
      }
  
  </script>
     
  
  
</html>

这是 code.gs,其中评估用户和密码是否在我的电子表格中。


function doGet(e) {
  if (!e.parameters.v) { 
    //Logger.log(e.parameters.v);
    return HtmlService.createTemplateFromFile("LogIN").evaluate();
    }
  else { 
    //return HtmlService.createTemplateFromFile("page").evaluate();
    }
    
}

function getScriptUrl() {
 var url = ScriptApp.getService().getUrl();
 Logger.log(url)
 return url;
}

function formCheck(userInfo){
  var branch = userInfo.branch
  if (branch == "Select a Branch") {
            alert("Branch must be selected!");
            return false;
    }
    else 
    {
      userClicked(userInfo)
    }
  }


function include(filename){
  return HtmlService.createHtmlOutputFromFile(filename)
    .getContent();
};


function userClicked(userInfo){
  login_attempts = getSheet("Login Attempts");
  login_attempts.appendRow([new Date(), userInfo.user, userInfo.pw]);
}

function checkAccountCredentials(formObject) 
{
  var username = formObject.username;
  var password = formObject.password;
  
  Logger.log(username);
  Logger.log(password); 

  return isValidLogin(username, password) ? true : false;
}

function isValidLogin(username, password)
{
    const registered_accounts = getSheet("Registered Accounts").getDataRange().getValues();

    for(var i = 1; i < registered_accounts.length; i++)
    {
      if(registered_accounts[i][0] == username && registered_accounts[i][1] == password)
      {
        return true;
      }
      else
      {
        Logger.log("Finsihed checking row " + i);
        //return false;
      }
    }
    
    return false; 
}

function getSheet(sheet_name)
{
    const url = "https://docs.google.com/spreadsheets/d/1fch_Q0FGmNW58whEAInw85RA87n383_lFhr_itxpVJI/edit#gid=2025510419";
    return SpreadsheetApp.openByUrl(url).getSheetByName(sheet_name);
}

此功能适用于我需要重定向的页面,这只是将数据解析到我的电子表格中。

function userClicked(name,patente,date,ori,des){
  var url ="https://docs.google.com/spreadsheets/d/1fch_Q0FGmNW58whEAInw85RA87n383_lFhr_itxpVJI/edit#gid=0";
  var ss = SpreadsheetApp.openByUrl(url);
  var ws = ss.getSheetByName("Data");
   ws.appendRow([name,patente,date,ori,des]);
//   Logger.log(test + "nada");
}

不久前发现了这颗宝石。 会感谢创作者,但自那以后一直找不到它......希望它有帮助! 如果您需要示例表,请单击此处

var conf = 'config'
var ss = SpreadsheetApp.openById(ID)

function doGet(e) {
  if (Object.keys(e.parameter).length === 0) {
    var htmlFile
    var sheetName = conf
    var activeSheet = ss.getSheetByName(sheetName)
    if (activeSheet !== null) {
      var values = activeSheet.getDataRange().getValues();
      for(var i=0, iLen=values.length; i<iLen; i++) {
        if(values[i][0] == 'Passcode') {
          var passCheck = activeSheet.getRange(i+1, 2).getValues()
          if(passCheck == lock) {
            htmlFile = 'Dashboard'
            activeSheet.getRange(i+1, 2).clearContent()
          } else {
            htmlFile = 'Login'
          }
        }
      }
    } else {
      config()
      htmlFile = 'Login'
    }
    return HtmlService.createHtmlOutputFromFile(htmlFile);
  }
}

function removeEmptyColumns(sheetName) {
  var activeSheet = ss.getSheetByName(sheetName)
  var maxColumns = activeSheet.getMaxColumns(); 
  var lastColumn = activeSheet.getLastColumn();
  if (maxColumns-lastColumn != 0){
    activeSheet.deleteColumns(lastColumn+1, maxColumns-lastColumn);
  }
}

function validateUser(passcode) {
  if (passcode == lock) {
    var successMessage = 'Logging you in!';
    config(passcode)
    return successMessage
  } else {
    var errorMessage = 'Incorrect passcode :(';
    return errorMessage
  }
}

function config(passcode) {
  var sheetName = conf
  var activeSheet = ss.getSheetByName(sheetName)
  if (activeSheet == null) {
    activeSheet = ss.insertSheet().setName(sheetName);
    activeSheet.appendRow (["Config"])
    activeSheet.appendRow (["Lock"])
    activeSheet.appendRow (["Passcode"])
    removeEmptyColumns(sheetName);
    activeSheet.setFrozenRows(1)
    if (passcode !== undefined) {
      var values = activeSheet.getDataRange().getValues();
      var sheetRow;
      for(var i=0, iLen=values.length; i<iLen; i++) {
        if(values[i][0] == 'Passcode') {
          sheetRow = i+1
          activeSheet.getRange(sheetRow, 2).setValue(passcode)
        }
      }
    }
  } else {
    var values = activeSheet.getDataRange().getValues();
    var sheetRow;
    for(var i=0, iLen=values.length; i<iLen; i++) {
      if(values[i][0] == 'Passcode') {
        sheetRow = i+1
        activeSheet.getRange(sheetRow, 2).setValue(passcode)
      }
    }
  }
}

function webAppURL(linkAddr) {
  var linkAddr = ScriptApp.getService().getUrl()
  return linkAddr
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM