驗證後轉向
尚未以Session處理
Code.gs
function doGet() {
return HtmlService.createHtmlOutputFromFile('index');
}
function checkCredentials(userId, password) {
var spreadsheetId = '更改為自己的試算表ID';
var sheetName = 'Sheet1';
var sheet = SpreadsheetApp.openById(spreadsheetId).getSheetByName(sheetName);
var data = sheet.getDataRange().getValues();
for (var i = 1; i < data.length; i++) {
var row = data[i];
if (row[0] === userId && row[1] === password) {
return row[2] + ' 已登入';
}
}
return '未登入';
}
function includePage(){
//Session.getActiveUser()
var pageContent = HtmlService.createTemplateFromFile('work.html').getRawContent();
return pageContent;
}
index.html
<!DOCTYPE html>
<html>
<head>
<base target="_top">
</head>
<body>
<form id="loginForm">
<label for="userId">帳號:</label>
<input type="text" id="userId" name="userId" required><br><br>
<label for="password">密碼:</label>
<input type="password" id="password" name="password" required><br><br>
<input type="submit" value="登入">
</form>
<div id="result"></div>
<script>
document.getElementById("loginForm").addEventListener("submit", function(e) {
e.preventDefault();
var username = document.getElementById("userId").value;
var password = document.getElementById("password").value;
var resultDiv = document.getElementById("result");
google.script.run.withSuccessHandler(function(result) {
//resultDiv.innerHTML = result;
document.getElementById("result").innerHTML = result;
if (result !== "未登入"){
localStorage.setItem('sendname',JSON.stringify(result)); //儲存寄件者名稱
google.script.run.withSuccessHandler(updataPageContent).includePage();
}
}).checkCredentials(username, password);
});
function updataPageContent(content){
document.open();
document.write(content);
document.close();
}
</script>
</body>
</html>
work.html
<!DOCTYPE html>
<html>
<head>
<base target="_top">
</head>
<body>
<h1>Welcome to Work Page</h1>
<p>This is the work page content.</p>
<p id="Sendername">...</p>
<script>
var username = localStorage.getItem("username");
document.getElementById("Sendername").innerHTML = JSON.parse(username); //提取寄件者名稱
</script>
<script>
window.load(){
google.script.run.withSuccessHandler(function(userId) {
if (!userId) {
document.open();
document.write("index.html");
document.close();
}
}).checkSession();
}
</script>
</body>
</html>
Google Apps Script在HTML之間傳遞資料:
使用物件 localStorage
方法 setItem()、getItem()
來源網頁(傳送) localStorage.setItem('名稱',JSON.stringify('資料內容'));
目的網頁(接收):
var username = localStorage.getItem("名稱");
document.getElementById("Sendername").innerHTML = JSON.parse(username);
GAS的HTML傳參數給code.gs
1.將接收的值存入HTML
<label id="senderName"></label>
<script>
document.getElementById('senderName').innerHTML = JSON.parse(localStorage.getItem('Sender'));
</script>
2.取值並且呼叫GAS,傳入參數。
var senderName = document.getElementById('senderInput').textContent;
google.script.run.sendEmailToRecipient('???@kssh.khc.edu.tw',subject, content, senderName);