`

如何获取url中的参数并传递给iframe中的报表

阅读更多

在使用报表软件时,用户系统左边一般有目录树,点击报表节点就会在右侧网页的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中的报表”节点时,即打开相对应的链接,对应网页就会在中间区域显示出来:

 

0
1
分享到:
评论

相关推荐

    Web报表FineReport页面如何传递中文参数

    在使用报表开发工具FineReport设计web报表时,经常需要嵌入iframe到页面中,并给iframe的src属性指定报表地址的同时传递参数值。在参数值、参数名称以及报表名称中,如果包含中文字符或特殊字符,直接传递可能会导致...

    frame之间以及子页面和父页面间参数传递

    - 可以通过修改URL中的查询字符串来传递参数。这种方法简单易用,但不适合传输大量数据或敏感信息。 4. **使用Cookie或LocalStorage**: - 对于需要持久化的数据,可以考虑使用Cookie或LocalStorage进行存储。...

    报表工具FineReport中如何把报表放到网页中显示

    需要注意的是,如果报表中有参数,直接在URL中传递可能会暴露敏感信息。为了解决这个问题,可以采用POST方式向`&lt;iframe&gt;`提交请求,这样可以隐藏URL中的参数信息。 ##### 3.2 示例演示 接下来,我们将以一个简单的...

    js实现ifram取父窗口URL地址的方法

    在Web开发中,有时需要在iframe内获取其父页面的URL地址。本文介绍的JavaScript方法,就是如何在iframe中实现获取父窗口URL地址的过程。这一过程利用了JavaScript中的window.parent对象,它是iframe元素与父窗口之间...

    js获取控制iframe中iframe的src

    js控制/获取a.html中iframe加载的b.html中的iframe,很多人都以为getElementById可以直接获取,其实不行的,以上代码就解决了这个问题,js控制iframe加载页面的iframe,不过测试只在IE和火狐通过,谷歌不行,其他自...

    iframe消息监听传递

    总的来说,`iframe`跨域消息传递是现代Web开发中的重要技术,它使得不同源的页面能够协作,从而实现复杂的交互和功能。理解并掌握`postMessage`和`message`事件的使用,以及如何利用`MessengerJS`这样的库,对于提升...

    MVC实现iframe弹窗传值

    在Web开发中,MVC(Model-...综上所述,实现MVC中的iframe弹窗传值涉及前端JavaScript交互、URL参数传递以及后端MVC的控制器和视图的配合。通过合理的代码组织和利用现有的库,可以创建出高效且易于维护的弹窗系统。

    JSP跨iframe如何传递参数实现代码

    特别是当一个页面中包含一个iframe,而另一个页面被嵌入到这个iframe中时,跨iframe传递参数的需求就会出现。本文主要介绍如何在JSP页面间通过iframe跨页面传递唯一性参数,并处理相应的查询与逻辑判断。 首先,...

    让iframe子窗体取父窗体地址栏参数(querystring)

    这段代码的主要目标是获取当前页面(父窗体)的URL参数,并将该参数传递给`iframe`中的子页面。 1. `var url = window.location.href;`: 这行代码获取当前页面的完整URL,包括协议、主机名、路径以及查询字符串...

    js获取iframe中的内容

    JS 获取 iframe 中的内容 在 Web 开发中,我们经常会遇到需要获取 iframe 中的内容的情况。iframe 是 HTML 中的一个元素,用于嵌入其他网页或文件。今天,我们将探讨如何使用 JavaScript 获取 iframe 中的内容。 ...

    Jquery方式获取iframe页面中的 Dom元素

    为了获取iframe中的DOM元素,我们可以通过jQuery来实现这一目标。在具体的实现过程中,需要注意iframe中的内容必须和主页面出于同一个域中,否则会受到浏览器同源策略的限制,无法获取到其中的DOM元素。这是因为...

    报表开发工具FineReport中如何把报表放到网页中显示

    如果需要与报表交互或调用报表内的方法,可以通过iFrame获取报表对象,然后再进行操作。 **结论**: 将FineReport报表嵌入到Web页面中是一种常见的做法,特别是在需要跨语言平台的情况下。通过使用iFrame,不仅可以...

    转:Birt接收JSP传递的参数值

    4. **BIRT接收参数**:在BIRT报表引擎接收到URL请求后,它会解析参数并将其传递给报表。在报表的SQL查询或者数据集配置中,我们可以使用这些参数来动态地过滤数据。例如,在数据集查询中,可以这样引用参数: ```...

    js获取IFRAME当前的URL的方法

    var iframeUrl = iframe.contentWindow.location.href; ``` 在这段代码中,`document.getElementById('content_info')`用于获取具有指定ID(在这里是`content_info`)的IFRAME元素。`iframe.contentWindow`是IFRAME...

    在vue中实现嵌套页面(iframe)

    如果`iframe`需要从Vue父页面获取数据,可以通过传递URL参数或者使用`postMessage` API来实现跨窗口通信。以下是一个简单的请求示例: ```javascript function PcCommon() { this.baseUrl = 'https://xxxxxxx'; //...

    Layui实现主窗口和Iframe层参数传递

    从iframe层向主窗口传递参数相对简单,使用parent关键字获取主窗口的上下文,然后即可访问主窗口中的JavaScript对象或变量。 代码示例: ```javascript parent.$("#主窗口元素ID").val("需要传递的参数"); ``` ...

    js对话框传递参数

    1. **创建对话框并传递参数**: ```javascript var obj = new Object(); obj.name = "i5tt"; window.showModalDialog("modal.htm", obj, "dialogWidth=200px;dialogHeight=100px"); ``` 这里首先创建了一个名...

    iframe标签实现pdf预览功能

    这个React组件同样接收`url`作为属性,并在返回的JSX中创建`iframe`元素。注意,React中的字符串连接可以使用模板字面量 `${url}?#zoom=page-fit`。 在实际项目中,你可能需要处理PDF文件的路径,确保它们是相对或...

    JS获取iframe内容【简化版】

    本文将详细介绍如何通过JavaScript(简称JS)来获取一个内嵌在当前页面中的iframe的内容。这种方法特别适用于那些需要动态加载或更新iframe内部数据的应用场景。我们将从基本原理出发,逐步深入到具体的实现细节,并...

    IFrame中Session丢失的解决办法

    在Web.Config文件中配置`sessionState`元素,设置`mode`属性为`StateServer`,并指定`stateConnectionString`,这使得Session数据不在本地存储,而是通过TCP/IP连接到一个独立的State Server服务,从而避免了由于...

Global site tag (gtag.js) - Google Analytics