如何在Google Apps Script中识别点击的按钮(不使用事件参数)
在Google Apps Script中识别点击的按钮(无需事件参数)
Google Apps Script的后端代码(.gs文件)运行在服务器端,和前端浏览器环境完全隔离,localStorage是浏览器专属的存储对象,后端根本无法访问,所以你之前尝试的方法行不通。
下面提供两种无需使用事件参数就能识别点击按钮的解决方案:
方案1:利用现有函数传递标识
不用修改原有按钮的HTML结构,只需在前端的getMovie()和getMusic()函数中,直接给后端传递对应的类型标识:
前端JS代码
function getMovie() { // 传递'movie'标识给后端处理函数 google.script.run.withSuccessHandler(showResult).fetchTargetList('movie'); } function getMusic() { // 传递'music'标识给后端处理函数 google.script.run.withSuccessHandler(showResult).fetchTargetList('music'); } // 处理后端返回结果的函数 function showResult(result) { // 这里可以将结果渲染到页面上,比如插入到某个DOM元素 console.log(result); }
后端GS代码
function fetchTargetList(type) { if (type === 'movie') { // 编写获取电影列表的逻辑 return ["肖申克的救赎", "星际穿越", "盗梦空间"]; } else if (type === 'music') { // 编写获取音乐列表的逻辑 return ["晴天", "稻香", "以父之名"]; } return "无效的请求类型"; }
方案2:统一调用函数(简化代码)
如果想减少重复代码,可以将按钮的点击事件统一绑定到同一个函数,直接传入标识,同时修改按钮HTML:
修改后的按钮HTML
<button id="movie" onclick="fetchList('movie')">get Movie List</button> <button id="music" onclick="fetchList('music')">get Music List</button>
前端JS代码
function fetchList(type) { google.script.run.withSuccessHandler(showResult).fetchTargetList(type); } function showResult(result) { console.log(result); // 渲染结果到页面的逻辑 }
后端GS代码
和方案1的fetchTargetList函数完全一致,无需修改。
内容的提问来源于stack exchange,提问作者whytili
相关产品推荐
相关产品推荐

