在模态窗口中,如有提交按钮,点击后会弹出新的页面。解决此问题有两种方法: 
1、在head中,添加<base target="_self">注意:不要在form中再添加target="_self" 否则失效 
2、把弹出的窗口页面做成框架网页,去加载要展示的网



如果你的浏览器是IE5.5+,可以在对话框中使用带name属性的iframe,提交时可以制定target为该iframe的name。对于IE4+,你可以用高度为0的frame来作:例子, 




test6.htm  
       
  ===================  
       
  <script>  
       
    window.showModalDialog( "test7.htm ")  
       
  </script>  
       

  test7.htm  
       
  ===================  
       
  if(window.location.search)   alert(window.location.search)  
       
  <frameset   rows= "0,* ">  
       
    <frame.   src= "about:blank ">  
       
    <frame.   src= "test8.htm ">  
       
  </frameset>  
       

  test8.htm  
       
  ===================  
       
  <form.   target= "_self "   method= "get ">  
       
  <input   name=txt   value= "test ">  
       
  <input   type=submit>  
       
  </form>  
       
  <script>  
       
  if(window.location.search)   alert(window.location.search)  
       
  </script>



3、另外一种解决方法




  1. First and foremost, add the HTML tag (<base target=”_self” />) to the head sectionof your HTML document. Depending on your method of refreshing the form, adding this tag may be sufficient. <html> <head> <base target="_self" />
  2. Next check to see if your modal dialog now correctly refreshes itself.In some cases the modal dialog will still open a new window. For instance if you were using a JavaScript self.location.href= command then you will need to replace this with a simulated hyperlink click event.
  • To do so, add a hyperlink to your page that is styled to be invisible (ie: <a href=”" id=”goLocation” style=”display:none;”>).
  • Then replace your JavaScript self.document.location.href = ‘test.html’; with a click command to your hidden hyperlink as follows: document.getElementById('goLocation').href = 'test.html'; document.getElementById('goLocation').click();