第一季

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

window.showModalDialog 传参数/打开新窗口

case 情况:
(1)不许使用ajax.
(2)在 a.jsp 上面点击一个按钮, 打开一个ModalDialogue, url是一个action, 请求参数可能会超长。形式如下:
     var parameters="";
     window.showModalDialog("/server.action;jsessionid=<%=session.getId()%>?parameters="+parameters+"&randomMath=" +Math.random(),null,"dialogLeft:" + dialogLeft + ";dialogTop:" + dialogTop + ";dialogWidth:1080px;dialogHeight:643px;scroll:no;center:yes;resizable:yes;status:no;help:no;");
     //action收到请求,根据参数parameters处理后forward到一个jsp.    
     问题是:参数"parameters"可能会超长。

方案1:
(1)点击按钮后,showModalDialog先到一个JSP,同时把参数传到ModalDialog窗口。
(2)使用隐藏的form以post方式提交到action。
(3)默认来说,ModalDialogue请求到一个新连接后,会打开新窗口,使用<base target="_self"> 可解决这个问题。
样例jsp:
<html>
<head>
<base target="_self">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title></title>
<script type="text/javascript">
    function wrapperOnload(){
        var url= "/server.action;jsessionid=<%=session.getId()%>?";
        url += "random="+Math.random();       
        var obj = window.dialogArguments;        
        document.getElementById("parameters").value=obj;       
        testForm.action=url;
        testForm.submit();        
    }
</script>
</head>
<body onload="wrapperOnload();">
<form id="testForm" method="post"  action="">
    <input type="hidden" id="parameters" name="parameters" />
</form>
</body>
</html>

====================================

iframe 引用页面,如果关闭掉(比如删除元素),内存不释放问题:

 解决办法

如何解决iframe的内存占用与内存增长的情况?不管是iframe引用无法释放的问题,还是iframe缓存的问题,通过把iframe对象的src置空,释放iframec所引用的页面内容是一个行之有效的办法,虽然iframe还是没有释放,但是它所占用的内存已大部分被释放掉。

文章链接:从webQQ谈iframe内存释放问题

 

 

posted on 2011-12-29 14:51  第一季  阅读(260)  评论(0编辑  收藏  举报