如何在Google App Script Web App中传递e.parameter至HTML页面并移除UserName引号
解决UserName显示带引号的问题
嘿,这个问题很好解决——问题就出在你处理URL参数的方式上!
你在doGet函数里用了JSON.stringify()来处理e.parameter['UserName'],但实际上URL参数通过e.parameter获取到的已经是字符串类型了,JSON.stringify会把这个字符串再额外包裹一层双引号,导致存到userProperties里的内容本身就带引号,后面取出来显示自然就带着引号了。
修正步骤:
只需要修改code.gs里的doGet函数,去掉多余的JSON.stringify()即可:
修正后的doGet函数代码:
const userProperties = PropertiesService.getUserProperties(); function doGet(e) { Logger.log(JSON.stringify(e.parameter)); // 去掉JSON.stringify,直接赋值原始参数值 UserName = e.parameter['UserName']; userProperties.setProperty('UserName', UserName); Logger.log("UserName= "+UserName); return HtmlService.createHtmlOutputFromFile('Index'); }
为什么这样有效?
e.parameter返回的是一个对象,其中的每个参数值都是原始字符串(比如URL里的?UserName=Jack,e.parameter['UserName']直接就是Jack,不带额外引号)。- 之前用
JSON.stringify()会把这个字符串转成"\"Jack\"",存到属性里后,取出来自然就带着外层的引号了。
修改后,你的getUserName函数返回的就是纯净的用户名,显示的时候就不会有多余的引号啦!
内容的提问来源于stack exchange,提问作者Jack Train
相关产品推荐
相关产品推荐

