Goole App Script HTML Onclick Button Issue



我正在制作一个侧边栏菜单,到目前为止,我让它能够从工作表中加载值。我正在努力让侧边栏更新所选择的值,目前挣扎一点,因为我似乎无法捕捉到一个错误,挣扎了一点,弄清楚如何在应用程序脚本中错误处理应用程序脚本和HTML。所以这里的第一个问题是,有人能给我一个关于如何错误处理HTML和应用程序脚本问题的参考。

我的第二个问题是我目前的问题,我有一个HTML按钮,它正在调用onFormUpdate()函数,它位于一个单独的HTML文件内,只是为了处理javascript函数。这是我的index.html

<!DOCTYPE html>
<html>
<base target="_top">
<?!= include('sidebar/sidebarcss'); ?>
<body>
<div id="title"> 
<div><h2>Meeting Item</h2></div>
</div>
<div id="meet">
<form id="meetform">
Row ID: <br>
<input type="text" id="meetrowId" name="meetrowId" maxlength="4" size="4" readonly />
Meet ID: <br>
<input type="text" id="meetId" name="meetId" maxlength="8" size="10" readonly />
Enter Date: <br>
<input type="text" id="meetingDate" name="meetingDate"/>
Topic: <br>
<input type="text" id="meetTopic" name="meetTopic"/>
Agenda: <br>
<textarea name="meetAgenda" id="meetAgenda" rows="10" cols="30"></textarea>
Comment History:<br>
<textarea name="meetComments" id="meetComments" rows="10" cols="30" readonly ></textarea>
Add Comments:<br>
<textarea name="meetComUpdate" id="meetComUpdate" rows="10" cols="30"></textarea><br>
<input type="button" class="button" value="Update Record" onclick="onFormUpdate()"/>
</form>
</div>
<input type="button" class="button" value="Select Another ID" onclick="google.script.run.showEmailSidebar()"/>
<input type="button" class="button" value="Close" onclick="google.script.host.close()"/>

<?!= include('sidebar/script'); ?> 
<script>
google.script.run.withSuccessHandler(onSuccess).SidebarActiveRow();
</script>
</body>
</html>

在表单中,我调用我的onFormUpdate(),当我点击按钮时什么也没有发生。正如你所看到的,我包括'侧边栏/脚本',这是我的html文件,存储所有的javascript函数。OnFormUpdate()位于"侧边栏/脚本"中,如下所示:

<script>

function onSuccess([cellrow, meetid, meetdate, meettopic, meetagenda, meetcomments]) 
{
/*
Secondary method for string parsing
const table =sidebarVar.split(",") //["key:value","key:value"]
.map(pair => pair.split(":")); //[["key","value"],["key","value"]]
const result = Object.fromEntries(table);
result.meetid;
*/

document.getElementById('meetrowId').value = cellrow
document.getElementById('meetId').value = meetid
document.getElementById('meetingDate').value = meetdate
document.getElementById('meetTopic').value = meettopic
document.getElementById('meetAgenda').value = meetagenda;
document.getElementById('meetComments').value = meetcomments;

}

function onFormUpdate()
{
var recordform = 
{
row: document.getElementById('meetrowId').value,
topic: document.getElementById('meetTopic').value,
agenda: document.getElementById('meetAgenda').value,
newcomment: document.getElementById('meetComUpdate').value
};
google.script.run.withSuccessHandler(SidebarActiveRow).recordUpdate(recordform);


}

</script>

正如你所看到的,我正试图让应用程序处理程序调用SidebarActiveRow,这是利用我的onSuccess函数从表中加载数据元素;这很好。处理程序在我成功运行位于我的代码中的recordUpdate()后调用SidebarActiveRow运行。gs文件。到目前为止,什么都没有发生。我有这个当前的代码测试,看看是否功能工作,但没有成功。

function recordUpdate(recordform) {
SpreadsheetApp.getUi().alert(recordform.row);
}

我没有得到提示,我似乎无法排除故障,因为html和Apps脚本功能并没有真正显示错误。我确实去看了一下是否有任何错误,但目前我没有看到任何错误。所以我在这里寻求一些帮助。

查看javascript错误处理。

HTML:

<script>
function someFunction() {
try {
// ... do some code
}
catch(err) {
alert(err);
}
}
</script>

For App Script

function someFunction() {
try {
// ... do some code
}
catch(err) {
Logger.log(err);  // check execution log
}
}

最新更新