如何实现点击页面上的超级链接后,实现等待效果(加载中)

如何在单元格上的超级链接点击后,在新页面显示出来前,页面上显示加载中。因为不显示的话,感觉点击后没有反馈。

Timothy233 发布于 2018-11-9 17:45
1min目标场景问卷 立即参与
回答问题
悬赏:6 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共4回答
最佳回答
4
congerLv6高级互助
发布于2022-9-9 21:16(编辑于 2022-9-9 21:17)

image.png

找到onclick事件获取完成事件JS,然后给链接绑定对话框或者FR.MSG事件,之后再弹出图表,其中ID和SESSIONID是每次打开都变化的,所以要动态获取

 

JS参考

//获取点击弹出悬浮图表事件

const chartJsStr = $('td[id*=A1]>span').attr('onclick')

//获取ID和sessionID

const {

  ID,

  sessionID

} = getIDAndSession(chartJsStr)

//移除原有的点击事件

$('td[id*=A1]>span').removeAttr('onclick')

//设置对话框参数

var o = {

  title: '提示',

  contentHtml: '加载中......'

}

$('td[id*=A1]>span').click(function() {

  //一、显示对话框提示

  FR.showLoadingDialog(o);

  //二、1秒后关闭对话框

  setTimeout(function() {

    FR.hideLoadingDialog();

  }, 1000)

  "+"

  //三、1秒后打开悬浮图表

  setTimeout(function() {

    console.log(1)

    FR.doHyperlink(event || window.event, [{

      "data": "var as=arguments; return FR.tc(function(){FR.ajax({    url : '/webroot/decision/view/report?op=chartrelate&cmd=pop_chart&ChartHyperlink_ID=ChartHyperlink__" + ID + "',    type : 'POST',    headers: {sessionID: '" + sessionID + "'},    dataType : 'json',    data :{ __parameters__:{\"FINEMARKID\":\"d120d33122ed41780dfabfb1f31320dc\",\"COUNTER.FILTERED\":\"true\",\"REPORTNAME\":\"问答/超链接悬浮框图表.cpt\",\"GZIPPED\":\"true\",\"HEADERADDED\":\"true\",\"_time\":\"new Date().getTime()\"}},    success:function(popIframeJS){(FR).showIframeDialog(popIframeJS)}});}, this, as)",

      "name": "图表超链-悬浮窗图表1"

    }], true)

  }, 1000);

})

//设置定时器,1秒后关闭加载中提示

//获取ID和SESSION 拼接

function getIDAndSession(str) {

  var idEnd = str.indexOf('\'\,')

  var idStart = str.indexOf('ChartHyperlink__') + 16

  var sessionIDStart = str.indexOf('sessionID: \'') + 12

  var sessionIDEnd = str.indexOf('\'\}\,')

  var ID = str.substring(idStart, idEnd)

  var sessionID = str.substring(sessionIDStart, sessionIDEnd)

  return {

    ID,

    sessionID

  }

}

参考模板

超链接悬浮框图表加载提示.zip

最佳回答
1
lefantianLv2初级互助
发布于2018-11-9 18:26

换个思路,你可以在单元格加个控件,什么控件都可以,然后写个点击事件提醒用户信息

  • Timothy233 Timothy233(提问者) 我开始就想到这个了,然而加了控件无法使用超级链接
    2018-11-13 14:28 
最佳回答
1
flyingsnakeLv6资深互助
发布于2018-11-9 18:47

默认就是有动画的啊..


JS隐藏正在加载图标与文字-http://help.finereport.com/doc-view-1629.html


最佳回答
0
macro_hardLv1高级互助
发布于2018-11-9 18:02

是打开在新窗口还是对话框?

  • 5关注人数
  • 1768浏览人数
  • 最后回答于:2022-9-9 21:17
    请选择关闭问题的原因
    确定 取消
    返回顶部