使用jquery.qrcode.min.js生成JSON二维码仅显示ID的问题求助
问题解决方法
你的代码存在两个关键错误,导致二维码仅显示id值:
- 变量定义位置错误:将URL参数解析的代码放在了
qrcode()的配置对象内部,属于语法错误,浏览器无法正确执行后续逻辑,仅id相关代码被意外解析。 - JSON内容构建错误:错误混合对象字面量与字符串拼接语法,生成的
myJSON并非完整JSON字符串,而是语法混乱的对象。
修正后的完整代码如下:
// 先解析URL参数,放在qrcode调用之外 const queryString = window.location.search; const urlParams = new URLSearchParams(queryString); const id = urlParams.get('id') || ''; const tableid = urlParams.get('tableid') || ''; const areacode = urlParams.get('areacode') || ''; const catid = urlParams.get('catid') || ''; // 创建对象后转成JSON字符串(推荐,避免拼接错误) const myJSON = JSON.stringify({ id: id, tableid: tableid, areacode: areacode, catid: catid }); // 调用qrcode生成二维码 jQuery('#output').qrcode({ minVersion: 1, maxVersion: 40, ecLevel: 'Q', left: 0, top: 0, size: 500, fill: '#000', radius: 0, quiet: 0, text: myJSON });
关键说明:
- 把参数解析逻辑移到
qrcode()方法外部,确保所有参数被正确获取。 - 使用
JSON.stringify()将JS对象转为标准JSON字符串,避免手动拼接时的引号、格式错误。 - 给参数添加
|| ''兜底处理,避免参数不存在时调用toString()报错。
内容的提问来源于stack exchange,提问作者user25271508
相关产品推荐
相关产品推荐

