解决父类加载iframe,src参数过大导致加载失败

原文:解决父类加载iframe,src参数过大导致加载失败
<iframe src="*******.do?param=****" id="leftFrame" name="leftFrame" frameborder="0"></iframe>

或者是使用js加载src:

var params = "?pk_id="+pk_id;

var frameLeftSrc = "<%=path %>/****/****.do"+params;

$('#leftFrame').attr("src",frameLeftSrc);

(先说明一下,此处只是以一个参数为例,实际可能会有多个参数。我们继续)

上面两种写法,都可以实现iframe的加载,我们可能会以为没问题,很正确。其实上面的写法的确是没有太大的问题,对于参数的值不长的时候,注意是参数的值的长度,不是参数的多少。比如说,我要向这个iframe中传递个参数,参数名叫pk_id,值是由主页面或者其他页面返回的一长串的主键拼接起来的值,起码3000个字符以上,这个时候我们再用这个方法访问就有问题了。因为这种url方法是通过get进行提交的,参数的长度是有限制的。

那么对于这种大数据传输的时候怎么办呢,我目前想到的就有两种(大家有什么更好的提议尽管提,相互交流,相互提高):

一、仍旧用这个种方式传递,但是参数的值不要过长,前提是不长的参数值可以通过关联查询到你想要的长的参数值,这样iframe接收到这个不长的参数值之后,你再想办法获得在iframe子页面中获得你想要的长的参数值。(可以用,但不建议,因为需要个前提)

二、在主页面采用以下方法,进行加载iframe页面即可:

主页面:<iframe src="about:blank" id="leftFrame" name="leftFrame"  frameborder="0">

js:

   var url="<%=path %>/pubitem/toChoosePubItemLeft.do"; //定义iframe页面的form表单的action

   //定义form表单
    var html1='<form id="queryForm" name="queryForm" method="post" target="_self" action="'+url+'">'+
    '<input type="hidden" id="pk_id" name="pk_id" value="'+pk_id+'"/>'+      //pk_id是一个长度超过3000字符的值
    '</form>';
    document.getElementById('leftFrame').contentWindow.document.write(html1);  //将表单写入iframe中
    document.getElementById('leftFrame').contentWindow.document.getElementById('queryForm').submit();//执行iframe中表单的提交

将以上方法封装到一个方法里面,然后主页面加载的时候调用这个方法,就会将主页面的大数据传递给iframe页面了。

时间: 2024-10-17 22:32:13

解决父类加载iframe,src参数过大导致加载失败的相关文章

Win7启动项太多导致加载失败怎么解决

  win7系统启动项太多导致加载失败改如何解决,下面就为大家分享下解决方法. 方法一.系统设置 如果是由于系统设置问题,可对系统的开机启动项进行设定,用户可根据自己的需要设置哪些启动项不需要加载,哪些启动项可以加载. 方法二.系统账户 系统的默认账户都是Admin账户,一些用户可能会选择使用其他账户来登录,再安装的一些程序就无法开机自动启动,也就是出现启动项加载失败.

webview-WebView控件加载失败 求大神帮忙解决

问题描述 WebView控件加载失败 求大神帮忙解决 public class MainActivity extends AppCompatActivity { private WebView webView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); webVi

easyui datagrid 大数据加载效率慢,优化解决方法(推荐)_jquery

在使用easyui datagrid途中发现加载数据的效率真的不是一般的差.经测试IE8加载300条数据就感觉明显的慢了,加载2000条数据就另人崩溃用时差不多60秒,就算在google浏览器测试结果也快不了几秒. 平时听闻easyui datagrid效率底下,自己测试才发现真是使人无法忍受. 笔者只好百度,google解决方法,发现一篇文章说改 //1.3.3版本是这样的,其它版本也是这句代码 $(_1e0).html(_1e4.join("")); 改为: $(_1e0)[0].

如何解决estjs中异步数据加载失败问题(加载数据超时导致数据加载失败),或延长extjs异步数据加载时间?

问题描述 如何解决estjs中异步数据加载失败问题(加载数据超时导致数据加载失败),或延长extjs异步数据加载时间? 问题补充:lizhi92574 写道 解决方案 Ext.data.Connection.prototype.timeout='9000';设置ajax请求时间默认30秒解决方案二:对解决方案三:你加载多大的数据居然超时了?

Hadoop datanode重新加载失败无法启动解决

  笔者使用的是基于虚拟机的Hadoop分布式安装,由于关闭datanode和namenode的顺序不恰当,所以经常会出现datanode加载失败的情况. 本人的解决方法适用于首次已经成功启动整个集群,但是由于不正常的操作造成第二次无法正常启动.首次的启动失败可能原因有很多:可能是由于配置文件错误写入造成的,或是由于ssh无密码登陆配置错误造成. 而第二次的错误原因与首次启动的有一些区别,排错重点应该集中在程序在运行中的一些动态加载而生成的文件上,笔者要讨论的是第二种情况: 大多原因就是因为ha

驱动程序加载失败怎么解决

我们平时在使用电脑时,是否会遇到驱动无法加载的现象,这是该怎么办呢?不要着急,让我们来看看下面这篇文章吧. 驱动加载失败一般都只有几种原因: 一种因为驱动程序本来就不完整. 第二种原因就像上面说的那样防火墙阻止驱动加载.可能是因为防火墙认为你安装的驱动带有攻击性,或者在防火墙询问你是否拒绝打开驱动的时候你选择了否.都会出现这样的问题! 解决方法,如果你觉得驱动是值得信懒的话,那你就先把防火墙关闭.(首先开始-控制面板-防火墙-防用-关闭防火墙),如果还是安装失败的时候你就要去重新下载一个驱动程序

WinXP系统驱动加载失败如何解决

  故障可能性一.造成驱动加载失败的原因其中包括驱动程序本身就不完全,其次就是在下载更新驱动的时候没有下载完全,一些被杀毒软件或者防火墙给拦截掉.还有就是可能是你的驱动版本不对,或者驱动文件损坏.没安装好,直接重新安装一次驱动程序试试.可能是要先用VPN拨号上到专门的网络才行的你具体看下软件安装说明,这里推荐大家使用驱动人生去自动更新驱动程序. 这种情况的解决方法很简单,尝试将一些杀毒软件及系统自带的防火墙暂时关闭一会儿.关于这些第三方软件比如360安全卫士及QQ电脑管家之类的关闭相信大家都是比

Hadoop datanode重新加载失败无法启动现象解决方法介绍

本人的解决方法适用于首次已经成功启动整个集群,但是由于不正常的操作造成第二次无法正常启动.首次的启动失败可能原因有很多:可能是由于配置文件错误写入造成的,或是由于ssh无密码登陆配置错误造成   笔者使用的是基于虚拟机的Hadoop分布式安装,由于关闭datanode和namenode的顺序不恰当,所以经常会出现datanode加载失败的情况. 本人的解决方法适用于首次已经成功启动整个集群,但是由于不正常的操作造成第二次无法正常启动.首次的启动失败可能原因有很多:可能是由于配置文件错误写入造成的

驱动加载失败故障原因及解决方法

故障可能性一.造成驱动加载失败的原因其中包括驱动程序本身就不完全,其次就是在下载更新驱动的时候没有下载完全,一些被杀毒软件或者防火墙给拦截掉.还有就是可能是你的驱动版本不对,或者驱动文件损坏.没安装好,直接重新安装一次驱动程序试试.可能是要先用VPN拨号上到专门的网络才行的你具体看下软件安装说明,这里推荐大家使用驱动人生去自动更新驱动程序. 这种情况的解决方法很简单,尝试将一些杀毒软件及系统自带的防火墙暂时关闭一会儿.关于这些第三方软件比如360安全卫士及qq电脑管家之类的关闭相信大家都是比较了