报表控件FineReport在报表中如何调用客户的js

 时间:2024-10-18 20:24:28

1、问题描述两种情况:1、报表嵌入在某个页面的iframe框架中,需要在报表模板中获取页面里面定义的方法;2、报表嵌入在某个页面的iframe框架中,需要在报表模板中获取页面中另一个iframe里面的方法。

2、解决方案首先通过js获取方法所在的对象,然后通过方法名调用:情况1中页面对于模板来说是父,因此可以通过parent.window.fnname()调用父页面的方法;情况2中通过父页面获取另一个iframe,再调用其中的方法:parent.window.getElementById("iframename").contentWindow.fnname()。

3、示例前提准备如下page1.html中,通过iframe嵌入了一张report报表及page2.html页面;在page1中定义了方法fun1:<html> <head> <title>page1</title><script type="text/javascript">function fun1(){alert("这是主页面中的方法!");} </script> </head> <body><p>这是page1</p><iframe src="/WebReport/page2.html" name="page2" id="page2" ></iframe><iframe src="/WebReport/ReportServer?reportlet=report.cpt" name="report" scrolling="auto"></iframe> </body></html>

4、其中page2.html中也定义了一个方法fun2:<html> <head> <title>page2</title> <script type="text/javascript">function fun2(){var name = alert("这是嵌在另一个iframe中页面里的方法!")} </script> </head> <body> <P>这是page2!</p> </body></html>

5、在模板中调用客户自己的js方法如在report.cpt模板的参数界面提交按钮点击事件中,获取页面page1及page2中的方法,js如下:var page1 = parent.window;page1.fun1();var page2 = page1.document.getElementById("page2").contentWindow;page2.fun2();

  • web报表控件FineReport中如何实现国际化报表
  • 报表控件FineReport如何在权限中使用session
  • web报表控件FineReport中如何优化报表取数
  • 报表控件FineReport中报表如何嵌入到.net系统
  • 报表控件FineReport中数据集中的排序
  • 热门搜索
    清明节手抄报全国第一 抗战手抄报 低碳生活我先行手抄报 英语早餐手抄报 关于读书的手抄报题目 异国风情手抄报 英语手抄报题目 心理手抄报内容 未来的2035年手抄报 春节的手抄报图片大全