Google Apps Script侧边栏HTML中if语句无法生效的问题排查
问题原因及解决方法
你修改后的fail函数失效,核心原因是**google.script.run传入的错误参数e是一个Error对象,不是原始字符串**。直接对Error对象调用indexOf方法会触发JS报错,导致整个函数停止执行。
解决步骤
- 先从Error对象中提取错误消息文本:可以用
e.message属性(Error对象的标准属性,存储具体错误内容),或者通过String(e)、e.toString()将对象转为字符串。 - 再用提取到的文本进行匹配判断。
修改后的可用代码
function fail(e){ // 优先取message属性,兼容不同错误场景 var errorMessage = e.message || String(e); if(errorMessage.indexOf("a server error occurred") > -1) { errorMessage = "Custom error message. try again later"; } $("#progress").text(`Failed with error: ${errorMessage}`); }
额外排查建议
可以在函数开头加一行console.log(e),打开浏览器控制台查看错误对象的具体结构,确认你要匹配的错误文本是否在message属性中,避免因文本内容不匹配导致判断失效。
内容的提问来源于stack exchange,提问作者Edward Wu
相关产品推荐
相关产品推荐

