//假设是一个任意值的Object var data = {"name":"Nameless"}; // Data 转码 //使用JSON.stringify()将Object转为JSON //然后使用encodeURIComponent()对特殊文字(中文字符等非ascii)进行转码 //在使用btoa()转换成base64 let dataEncode = btoa(encodeURIComponent(JSON.stringify(data))); //传值 var buttonItem = '<a οnclick="detailMachine(\''+dataEncode+'\');">'; // Data 解码 const dataDecodeFc = (data)=>{ let dataDecode = JSON.parse(decodeURIComponent(atob(data))); } 直接转成JSON可能会遇到 ",'(). 等标点符合混乱导致各种SyntaxError,上述代码将原始数据data先将非ascii字符转为万国码,然后将万国码联通数据一同转为base64,杜绝因为JSON与Javascript各种奇妙错误,由于这是在客户浏览器端进行的对服务器压力没那么大
JavaScript OnClick 传值的解决方案 搭配模板引擎
于 2022-01-06 14:54:58 首次发布