找到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