Javascript 如何在google应用程序脚本中重定向到另一个.html
我试图用Gas和电子表格登录,我发现可以,但当密码和用户正确时,它会向我显示警报(是),但当usr/pass正确时,我需要重定向到另一个页面(Gas命名页面内)。如果有人能帮我的话 Login.htmlJavascript 如何在google应用程序脚本中重定向到另一个.html,javascript,html,google-apps-script,Javascript,Html,Google Apps Script,我试图用Gas和电子表格登录,我发现可以,但当密码和用户正确时,它会向我显示警报(是),但当usr/pass正确时,我需要重定向到另一个页面(Gas命名页面内)。如果有人能帮我的话 Login.html <!DOCTYPE html> <html> <head> <base target="_top"> <?!= include('LogIN-CSS') ?> <link href=
<!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>
不久前发现了这块宝石。将给予造物主荣誉,但一直无法找到它…希望它有帮助!如果需要示例工作表,请单击
var conf='config'
var ss=电子表格应用程序.openById(ID)
函数doGet(e){
if(Object.keys(e.parameter).length==0){
var htmlFile
var sheetName=conf
var activeSheet=ss.getSheetByName(sheetName)
如果(活动表!==null){
var values=activeSheet.getDataRange().getValues();
对于(var i=0,iLen=values.length;感谢分享,我有一个问题。它可以工作,但当我登录时显示404,但如果我重新加载页面,它会将我发送到仪表板。你的脚本编辑器中有login.html文件和dashboard.html吗?是的,我只是复制你发布的电子表格,并检查它如何工作,但当用户和pass都被删除时,就会发生这种情况。)更正登录,但dasboard显示错误404。当我刷新它时,显示dash。那么,如果用户的Credentail是正确的,你基本上想将用户重定向到电子表格吗?不,如果Credentail是正确的,重定向到另一个用gas制作的html。你的e.parameters.v
是什么?它支持什么,它加载了什么?这有意义吗要使if条件检查函数checkAccountCredentials
返回什么?
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
}