帆软js弹窗本地第三方页面,怎么在第三方页面关闭这个弹窗

帆软弹窗

var iframe = $("<iframe id='inp' name='inp' width='100%' height='100%' scrolling='yes' framedorder='0'>");
iframe.attr("src", "http://localhost:8081/batchImport?userName="+userName);
// 给 iframe 添加 src 属性
var o = {
	width: 650, //对话框宽度  
	height: 550 //对话框高度
};
FR.showDialog("批量上传", o.width, o.height, iframe, o); //弹出对话框

弹出成功后页面

image.png

怎么在这个本地html页面功能完成后 触发帆软的关闭弹窗

FineReport 三浪是种病 发布于 2025-5-30 13:26
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共3回答
最佳回答
0
三浪是种病Lv3见习互助
发布于2025-6-6 09:07

通过postMessage调用解决问题

// 父窗口(帆软页面)代码,直接放在 加载结束
window.addEventListener('message', (e) => {
    if (e.data.action === 'CLOSE_FINE_WINDOW' && e.data.source === 'myLocalPage') {
        if (FR && FR.closeDialog) {
            FR.closeDialog(); // 执行关闭操作
            FR.destroyDialog();
            location.reload();
        }
    }
});
<button type="button" id="closeFR" >调用父页面</button>
<script type="text/javascript">
document.getElementById('closeFR').addEventListener('click', function() {
    window.parent.postMessage({
        action: 'CLOSE_FINE_WINDOW',
        source: 'myLocalPage'
    }, '*'); // 建议替换为具体的父窗口域名

});
</script>

最佳回答
0
snrtuemcLv8专家互助
发布于2025-5-30 13:32

window.parent.FR.closeDialog(); //确定获取值后,关闭取消父窗口的对话框window.parent.FR.destroyDialog();

  • 三浪是种病 三浪是种病(提问者) 不是帆软内部的关闭,想要从本地html或者ajax调用帆软,让帆软关闭弹窗
    2025-05-30 13:43 
  • snrtuemc snrtuemc 回复 三浪是种病(提问者) 参考自定义按钮 https://help.fanruan.com/finereport/doc-view-910.html,不行需要咨询帆软技术支持
    2025-05-30 13:47 
  • 三浪是种病 三浪是种病(提问者) 回复 snrtuemc 还不行,我已经联系帆软的技术了,谢谢
    2025-05-30 14:14 
最佳回答
0
iQianLv4初级互助
发布于2025-5-30 16:55

这是弹出了一个iframe,在你的子页面(弹窗页面)调用父页面的关闭方法,应该就可以呀。

不行的话,大概是层级关系不对。

  • 2关注人数
  • 57浏览人数
  • 最后回答于:2025-6-6 09:07
    请选择关闭问题的原因
    确定 取消
    返回顶部