或者 //电子表格 客户端宏 对象spreadsheetReport 事件onRender function main(spreadsheetReport, isAjaxRefreshCallback) { try { // 获取URL单元格内容 var urlCell = spreadsheetReport.getCell("D3"); // var url = urlCell.textContent ? urlCell.textContent.trim() : ""; var url ="https://decsmartbi.cloud.smartbi.com.cn/smartbi/vision/openresource.jsp?resid=I0bb87da4c7fab000"; // 获取链接单元格并设置点击事件 var linkCell = spreadsheetReport.getCell("C1"); var linkText = linkCell.textContent ? linkCell.textContent.trim() : "点击打开"; // 设置可点击链接 linkCell.innerHTML = '' + linkText + ''; // 添加点击事件 spreadsheetReport.addListener(linkCell, "click", function(event) { event.preventDefault(); openInDialog(url); }, spreadsheetReport); } catch (error) { alert("宏执行失败: " + error.message); } } /** * 在对话框中打开URL * @param {string} url - 要打开的URL地址 */ function openInDialog(url) { try { // 获取对话框工厂 var dialogFactory = jsloader.resolve("freequery.dialog.dialogFactory"); // 配置对话框 var dialogConfig = { title: "网页预览", size: dialogFactory.size.LARGE, dialogType: "modeless", fullName: "freequery.dialog.BaseDialogEx", closeBeforeCallback: true }; // 显示对话框 dialogFactory.showDialog(dialogConfig, {}); // 延迟设置内容 setTimeout(function() { var elem = window.dialog.dialogBody; var btnOK = window.dialog.btnOK; var btnCancel = window.dialog.btnCancel; if (btnOK) btnOK.style.display = 'none'; if (btnCancel) btnCancel.value = '关闭(C)'; if (elem) elem.innerHTML = ''; }, 500); } catch (error) { alert("无法打开对话框: " + error.message); } } 怎么可以让这个点击单元格的弹窗关闭后刷新页面数据? |