模态窗口中,防止提交时页面刷新弹出新的页面

9 篇文章 0 订阅

 

在模态窗口中,如有提交按钮,点击后会弹出新的页面。解决此问题有两种方法: 
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();

参考 :http://jwcooney.com/2011/12/22/showmodaldialog-opens-a-new-window-on-submit-or-location-href/

 

参考 :http://blog.sina.com.cn/s/blog_4c6e822d0100r6jr.html


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值