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内存释放问题