我希望在从电子表格应用程序关闭模态对话框(使用showModalDialog()
打开)时执行某些操作。
但是我在Google提供的API文档中找不到此类事件的引用。 I found how to capture this event in a Alert Box,通过使用这段代码,我可以捕获用户关闭警报框的方式,但我不能在模态对话框或无模式对话框中使用它。
有办法做到这一点吗?如果你这样做,请回答。
答案 0 :(得分:7)
不可能。你应该以一种无关紧要的方式编写脚本。例如,通过在对话框中显示一个大动作按钮,向用户明确说明他必须单击该按钮才能继续执行脚本。
但是如果你真的想要实现这一点,我猜你可以使用HtmlService对话框定期对后端进行异步调用,每个调用在退出之前等待下一个调用,然后如果&#34 ;下一个"调用没有及时,它可以假设对话框已关闭并执行关闭程序而不是简单地退出。
答案 1 :(得分:3)
这是另一种解决方案。您可以在HTML(由GAS提供)中使用Google托管的jquery来跟踪页面关闭时的卸载事件。以下是一些示例代码:
<!DOCTYPE html>
<html>
<head>
<base target="_top">
</head>
<body>
<!-- page content -->
</body>
<!-- Minified google hosted jquery (see https://developers.google.com/speed/libraries/)-->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<!-- And here's where the magic happens -->
<script type="text/javascript">
$(document).ready( e => {
console.log('-- DOM ready --');
/** Add jquery unload listener */
$(window).on('unload', e => {
console.log("Invoked just before unload");
// do pre-unload stuff
});
});
</script>
</html>