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