在使用报表软件时,用户系统左边一般有目录树,点击报表节点就会在右侧网页的iframe中显示出报表,同时点击的时候也会传递一些参数给网页,比如时间和用户信息等。如何使网页中的报表能够获取到传递过来的参数呢?以下用报表软件FineReport简单介绍一些。
具体实现过程
将报表生成页面时,给网页添加onload事件,首先获取url中的参数,然后嫁接到iframe的src上,或者通过获得的参数拼接处完整的报表url赋给iframe的src。
<html> <head> <title>FineReport Demo</title> <meta http-equiv="Content-Type" content="text/html; charset=GBK"> <script type="text/javascript" src="/WebReport/ReportServer?op=emb&resource=finereport.js"></script> <script type="text/javascript"> function autoLoad(){ //返回从问号 (?) 开始的 URL(查询部分) var paraString = location.search; //多个参数用&分隔,将参数字符串转为数组,使每个参数值存于一个数组元素中 var paras = paraString.split("&"); //每个数组元素中"="后面的值即参数值 var reportName = paras[0].substr(paras[0].indexOf("=") + 1); var area = paras[1].substr(paras[1].indexOf("=") + 1); var province = paras[2].substr(paras[2].indexOf("=") + 1); var city = paras[3].substr(paras[3].indexOf("=") + 1); //使用获取的参数值拼接出最终的url var reportURL = "/WebReport/ReportServer?reportlet=" + reportName + "&area=" + area + "&province=" + province + "&city=" + city; //url中可能包含中文或特殊字符因此需要进行编码转换,注意需要先引入finereport.js reportURL = FR.cjkEncode(reportURL); //将新的报表路径赋给报表所在iframe的src document.getElementById("reportFrame").src = reportURL; } //加载网页时调用autoLoad方法 window.onload = autoLoad; </script> </head> <body> <iframe id="reportFrame" width="900" height="400"></iframe> </body> </html>
将代码保存为geturlpara.html,保存在工程下的page_demo文件夹下。
使用管理员登录决策平台,点击管理系统>报表管理,点击添加链接,链接路径为:page_demo/geturlpara.html?report=doc/Parameter/MultiValue/MultiValue.cpt&area=华东&province=江苏&city=无锡,名称为:url参数传递给iframe中的报表,如下图:
这样刷新fs,就可以看到左侧目录树中多了一个节点,点击该节点后,就可以在右侧网页的iframe中显示出报表包括传递给网页的参数。
效果查看
如下图,点击左侧“url参数传给iframe中的报表”节点时,即打开相对应的链接,对应网页就会在中间区域显示出来:
相关推荐
在使用报表开发工具FineReport设计web报表时,经常需要嵌入iframe到页面中,并给iframe的src属性指定报表地址的同时传递参数值。在参数值、参数名称以及报表名称中,如果包含中文字符或特殊字符,直接传递可能会导致...
- 可以通过修改URL中的查询字符串来传递参数。这种方法简单易用,但不适合传输大量数据或敏感信息。 4. **使用Cookie或LocalStorage**: - 对于需要持久化的数据,可以考虑使用Cookie或LocalStorage进行存储。...
需要注意的是,如果报表中有参数,直接在URL中传递可能会暴露敏感信息。为了解决这个问题,可以采用POST方式向`<iframe>`提交请求,这样可以隐藏URL中的参数信息。 ##### 3.2 示例演示 接下来,我们将以一个简单的...
在Web开发中,有时需要在iframe内获取其父页面的URL地址。本文介绍的JavaScript方法,就是如何在iframe中实现获取父窗口URL地址的过程。这一过程利用了JavaScript中的window.parent对象,它是iframe元素与父窗口之间...
js控制/获取a.html中iframe加载的b.html中的iframe,很多人都以为getElementById可以直接获取,其实不行的,以上代码就解决了这个问题,js控制iframe加载页面的iframe,不过测试只在IE和火狐通过,谷歌不行,其他自...
总的来说,`iframe`跨域消息传递是现代Web开发中的重要技术,它使得不同源的页面能够协作,从而实现复杂的交互和功能。理解并掌握`postMessage`和`message`事件的使用,以及如何利用`MessengerJS`这样的库,对于提升...
在Web开发中,MVC(Model-...综上所述,实现MVC中的iframe弹窗传值涉及前端JavaScript交互、URL参数传递以及后端MVC的控制器和视图的配合。通过合理的代码组织和利用现有的库,可以创建出高效且易于维护的弹窗系统。
特别是当一个页面中包含一个iframe,而另一个页面被嵌入到这个iframe中时,跨iframe传递参数的需求就会出现。本文主要介绍如何在JSP页面间通过iframe跨页面传递唯一性参数,并处理相应的查询与逻辑判断。 首先,...
这段代码的主要目标是获取当前页面(父窗体)的URL参数,并将该参数传递给`iframe`中的子页面。 1. `var url = window.location.href;`: 这行代码获取当前页面的完整URL,包括协议、主机名、路径以及查询字符串...
JS 获取 iframe 中的内容 在 Web 开发中,我们经常会遇到需要获取 iframe 中的内容的情况。iframe 是 HTML 中的一个元素,用于嵌入其他网页或文件。今天,我们将探讨如何使用 JavaScript 获取 iframe 中的内容。 ...
为了获取iframe中的DOM元素,我们可以通过jQuery来实现这一目标。在具体的实现过程中,需要注意iframe中的内容必须和主页面出于同一个域中,否则会受到浏览器同源策略的限制,无法获取到其中的DOM元素。这是因为...
如果需要与报表交互或调用报表内的方法,可以通过iFrame获取报表对象,然后再进行操作。 **结论**: 将FineReport报表嵌入到Web页面中是一种常见的做法,特别是在需要跨语言平台的情况下。通过使用iFrame,不仅可以...
4. **BIRT接收参数**:在BIRT报表引擎接收到URL请求后,它会解析参数并将其传递给报表。在报表的SQL查询或者数据集配置中,我们可以使用这些参数来动态地过滤数据。例如,在数据集查询中,可以这样引用参数: ```...
var iframeUrl = iframe.contentWindow.location.href; ``` 在这段代码中,`document.getElementById('content_info')`用于获取具有指定ID(在这里是`content_info`)的IFRAME元素。`iframe.contentWindow`是IFRAME...
如果`iframe`需要从Vue父页面获取数据,可以通过传递URL参数或者使用`postMessage` API来实现跨窗口通信。以下是一个简单的请求示例: ```javascript function PcCommon() { this.baseUrl = 'https://xxxxxxx'; //...
从iframe层向主窗口传递参数相对简单,使用parent关键字获取主窗口的上下文,然后即可访问主窗口中的JavaScript对象或变量。 代码示例: ```javascript parent.$("#主窗口元素ID").val("需要传递的参数"); ``` ...
1. **创建对话框并传递参数**: ```javascript var obj = new Object(); obj.name = "i5tt"; window.showModalDialog("modal.htm", obj, "dialogWidth=200px;dialogHeight=100px"); ``` 这里首先创建了一个名...
这个React组件同样接收`url`作为属性,并在返回的JSX中创建`iframe`元素。注意,React中的字符串连接可以使用模板字面量 `${url}?#zoom=page-fit`。 在实际项目中,你可能需要处理PDF文件的路径,确保它们是相对或...
本文将详细介绍如何通过JavaScript(简称JS)来获取一个内嵌在当前页面中的iframe的内容。这种方法特别适用于那些需要动态加载或更新iframe内部数据的应用场景。我们将从基本原理出发,逐步深入到具体的实现细节,并...
在Web.Config文件中配置`sessionState`元素,设置`mode`属性为`StateServer`,并指定`stateConnectionString`,这使得Session数据不在本地存储,而是通过TCP/IP连接到一个独立的State Server服务,从而避免了由于...