使用window.open打开新窗口,以post方式传参数

如果在使用window.open打开新窗口(可以控制尺寸)的时候,
不使用get方式传参,而是用post传。
 
这件事情我当时觉得不太可能。没想到很快他就找到一个实现方式,试验通过了。
呵呵,看来好多看似不可能的东西,换个角度思考,就成了可能。
 方法一:
 
js 代码
  1. <script>   
  2.    function openSpecfiyWindown( windowName )   {   
  3.     window.open('about:blank',windowName,'width=700,height=400,menubar=no,scrollbars=no');   
  4.    }   
  5.   </script>   
xml 代码
  1. <form id="editForm" name="editForm" method="post" action="viewUser" target="colors123" onsubmit="openSpecfiyWindown( 'colors123' )">  
  2.  <fieldset>  
  3.   <input type="hidden" id="id" name="id" value="$!{User.id}" />  
  4.   <input type="submit" />  
  5.  </fieldset>  
  6. </form>  
方法二:
<script>
    function openNewSpecifiedWindow( windowName )
    {
     window.open('about:blank',windowName,'width=700,height=400,menubar=no,scrollbars=no');
    }
   </script>


<form id="editForm" name="editForm" method="post" action="viewUser" target="newWindow" onsubmit="openNewSpecifiedWindow( 'newWindow' )">
   <fieldset>
    <input type="hidden" id="id" name="id" value="/$!{User.id}" />
    <input type="submit" />
   </fieldset>
</form>

原理其实很简单,在提交Form时新打开一个"newWindow"窗口,然后把数据提交到里面。如果需要新窗口全屏可以用'screen.width'和'screen.height'两个值代替上面的700和400

如果需要关闭原先的窗口,用普通的方法会有IE提示框的,经过在网上查找可以用以下方法实现

     window.opener=null;
     window.open('','_top');
     window.top.close();


你可能感兴趣的:(xml,function,null,input,action,colors)