Google apps script 加载草稿在加载时有效,但在按钮触发时无效
我打算编写一个简单的谷歌应用程序脚本邮件合并应用程序,作为绑定脚本,从用户的邮件草稿开始。我打开一个带有下拉菜单的边栏来选择草稿。当我在加载时获取草稿时,它工作得很好,但是当我用按钮触发获取时,侧边栏将被清除,而不会在控制台中显示任何错误 我将代码精简到最低限度以显示问题:Google apps script 加载草稿在加载时有效,但在按钮触发时无效,google-apps-script,Google Apps Script,我打算编写一个简单的谷歌应用程序脚本邮件合并应用程序,作为绑定脚本,从用户的邮件草稿开始。我打开一个带有下拉菜单的边栏来选择草稿。当我在加载时获取草稿时,它工作得很好,但是当我用按钮触发获取时,侧边栏将被清除,而不会在控制台中显示任何错误 我将代码精简到最低限度以显示问题: <!DOCTYPE html> <html> <head> <link rel="stylesheet" href="https://ssl.gstatic.com/docs/
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" href="https://ssl.gstatic.com/docs/script/css/add-ons1.css">
</head>
<body>
<div class="sidebar">
<form>
<div class="block">
<div class="inline form-group">
<label for="draft">Choose</label>
<select id="draft">
<option disabled selected>One moment please ...</option>
</select>
</div>
</div>
<div class="block" id="button-bar">
<button id="reload">reload</button>
</div>
</form>
</div>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js">
</script>
<script>
$(function() {
getDrafts();
$('#reload').click(getDrafts);
});
function getDrafts() {
google.script.run
.withSuccessHandler(loadDrafts)
.withFailureHandler(showError)
.getDraftMessages();
}
function loadDrafts(drafts) {
$('#draft').find('option').remove();
for (var i = 0; i < drafts.length; i++) {
$('#draft').append('<option value="' + drafts[i].id + '">' + drafts[i].subject + '</option>');
}
}
function showError(msg, element) {
var div = $('<div id="error" class="error">' + msg + '</div>');
$(element).after(div);
}
</script>
</body>
</html>
选择
请稍等。。。
重新加载
$(函数(){
getDrafts();
$(“#重新加载”)。单击(获取草稿);
});
函数getDrafts(){
google.script.run
.withSuccessHandler(loadDrafts)
.带故障处理器(淋浴ROR)
.getDraftMessages();
}
函数加载草稿(草稿){
$(“#草稿”).find('option').remove();
对于(变量i=0;i
后端javascript(.gs文件)是:
函数onOpen(){
var ss=SpreadsheetApp.getActive();
变量菜单=[{
名称:“邮件合并测试”,
functionName:“邮件合并”
}, ];
ss.addMenu(“MM实验”,菜单);
}
mailMerge=函数(){
var html=HtmlService.createHtmlOutputFromFile('MailMergeUI').setTitle('Mail merge');
SpreadsheetApp.getUi().showSidebar(html);
}
函数getDraftMessages(){
试一试{
draftMessages=GmailApp.getDraftMessages();
草稿=[];
对于(变量i=0;i在Chrome开发者工具中,我找不到调试它们的脚本。查看html,我认为这是因为按钮提交了表单。如果您对客户端js进行此建议编辑,我希望它能解决此问题
$(function() {
$('#reload').click(getDrafts).click();
});
function getDrafts(e) {
e.preventDefault();
google.script.run
.withSuccessHandler(loadDrafts)
.withFailureHandler(showError)
.getDraftMessages();
}
谢谢你的提示!!!移除标签也起到了作用。又学到了什么!
$(function() {
$('#reload').click(getDrafts).click();
});
function getDrafts(e) {
e.preventDefault();
google.script.run
.withSuccessHandler(loadDrafts)
.withFailureHandler(showError)
.getDraftMessages();
}