帆软用工具测试超链接打开弹窗(iframe嵌套),解决js传参带中文传递有乱码问题
1、新建超链接
随意点击一个单元格右击,选择 超级链接
2、在弹出的窗口中选择JavaScript脚本 如图:
其中红框框出的是几个要点 ,左边的就不讲了,右上角的参数cc是设置了公式remoteServletURL 能自动获取报表路径 如图:
右下角的js代码是设置一个iframe弹窗,代码如下:
1 var url =FR.cjkEncode("?formlet=indicatorDetailedTypeFirst.frm&companycode=0102010101&intermediarycode=0201072911&name=赵振强"); 2 var iframe = $("<iframe id='inp' name='inp' width='100%' height='100%' scrolling='yes' frameborder='0'>"); // 对话框内 iframe 参数的命名,默认宽高占比是 100%,可向下滚动 3 iframe.attr("src", cc+url); 4 //iframe.attr("src", cc+"?formlet=indicatorDetailedTypeFirst.frm&name=赵振强"); // 给 iframe 添加 src 属性 5 var o = { 6 width : 700, //对话框宽度 7 height: 500 //对话框高度 8 }; 9 FR.showDialog("添加", o.width, o.height, iframe,o);//弹出对话框
其中需要注意的是如果参数中有 中文需要将url包裹在编码FR.cjkEncode()里,否则传参中的中文将会是乱码:如图
需要注意的是:如果放到工程js中会报FR没定义,我找了半天没找到怎么引入帆软的js,网上百度看到有人贴出了cjkEncode的源码,直接加到js方法中调用即可
$.GPageModule([""],function(){ var modelType = "indicatorDetailedTypeFirst.frm"; var companycode = $("#companycode").val(); var intermediarycode =$("#intermediarycode").val(); var name =$("#name").val(); var reportURL = cjkEncodeNew(GlobalParam.context+"/ReportServer?formlet=erm/sj/"+modelType+"&companycode="+companycode+"&intermediarycode="+intermediarycode+"&name="+name); $("#viewIndicatorDetailedType").attr("src",reportURL); }); function cjkEncodeNew(text) { if (text == null) { return ""; } var newText = ""; for (var i = 0; i < text.length; i++) { var code = text.charCodeAt (i); if (code >= 128 || code == 91 || code == 93) {//91 is "[", 93 is "]". newText += "[" + code.toString(16) + "]"; } else { newText += text.charAt(i); } } return newText; }
原创总结。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?