按钮跳转

image.png这边是加了一个按钮,添加的点击事件实现的跳转,但是这样跳转后会覆盖之前的那张表image.png实际想是在后面新开一个窗口

var YM_ID=this.options.form.getWidgetByName("YM_ID").getValue();

var ACCOUNT_CODE=this.options.form.getWidgetByName("ACCOUNT_CODE").getValue();

window.location = encodeURI(encodeURI("${servletURL}?reportlet=PC_FIN/FIN_GL_BALANCE_UDD_R_WD.cpt&YM_ID="+YM_ID+"&ACCOUNT_CODE="+ACCOUNT_CODE));

FineReport 嘘.. 发布于 2025-5-7 11:34
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共2回答
最佳回答
0
FR-LeonLv4初级互助
发布于2025-5-7 11:36
1. 修改后的代码

var YM_ID = this.options.form.getWidgetByName("YM_ID").getValue();

var ACCOUNT_CODE = this.options.form.getWidgetByName("ACCOUNT_CODE").getValue();



// 双重编码参数并新开窗口

window.open(

"${servletURL}?reportlet=" + encodeURIComponent("PC_FIN/FIN_GL_BALANCE_UDD_R_WD.cpt") +

"&YM_ID=" + encodeURIComponent(YM_ID) +

"&ACCOUNT_CODE=" + encodeURIComponent(ACCOUNT_CODE)

);
2. 关键改进点
  1. 新窗口打开使用window.open()替代window.location实现新标签页跳转

  2. 参数安全编码

    • 对模板路径和所有参数值使用encodeURIComponent()

    • 处理特殊符号(如/=%2F)和中文

  3. 双重编码说明GET请求需双重编码防止容器自动解码乱码:

    encodeURIComponent(encodeURIComponent(value))
3. 效果验证
  • 参数含特殊字符如#、&时仍能正常传递

  • 中文参数不会出现乱码

  • 始终保持在新窗口打开

注:如果参数值可能包含+号,需特别处理为%252B

最佳回答
0
华莉星宸Lv7资深互助
发布于2025-5-7 11:38
  • 3关注人数
  • 34浏览人数
  • 最后回答于:2025-5-7 11:38
    请选择关闭问题的原因
    确定 取消
    返回顶部