解决父页面加载iframe时,src链接中参数值过大导致加载失败的问题_html/css_WEB-ITnose

WBOY
풀어 주다: 2016-06-24 11:52:07
원래의
1899명이 탐색했습니다.

有时候我们在使用iframe时,喜欢这么写

或者是使用js加载src:

var params = "?pk_id="+pk_id;

var frameLeftSrc = "/****/****.do"+params;

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

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

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

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

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

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

主页面:

js:

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

   //定义form表单
    var html1='

'+
    ''+      //pk_id是一个长度超过3000字符的值
    '
';
    document.getElementById('leftFrame').contentWindow.document.write(html1);  //将表单写入iframe中
    document.getElementById('leftFrame').contentWindow.document.getElementById('queryForm').submit();//执行iframe中表单的提交

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

 

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!