zoukankan      html  css  js  c++  java
  • 解决网页对话框中链接和表单提交会在新窗口中打开的问题

    现象:
    在脚本中使用 window.showModalDialog() 或 window.showModelessDialog() 弹出的“网页对话框”中含有链接或表单,当点击链接或者提交表单时,转向的结果页面会在一个新弹出的网页窗口中显示,而不是在当前“网页对话框”自身内部显示。


    解决方法:
    方法1(不推荐)

    做一个包含框架(frame 或 iframe)的页面:

    使用上述方法弹出对话框时显示的是框架页面,而真正要显示的页面放在框架页内部的框架中显示。
    缺点:实现有些复杂,需要多创建一个框架页面。如果仅仅要做一个这样对话框还好应付,但要做很多的话就不好办了。那样的话可能要很多个框架页,或者只做一个框架页,实际要显示的页面地址通过上述两个函数中的第二个参数传给框架页,然后在框架页中用脚本动态将实际页面加载到框架中。
    使用方法1时对于对话框的返回值也要注意,因为此时实际页面是在框架中,所以返回值要使用“window.parent.returnValue”来指定。


    方法2(推荐!)

    不需要框架页。要做的仅仅是在对话框要显示的页面中<head></head>标签内加入“<base target="_self" />”。
    这样点击普通的链接或是提交表单后,新的页面还是会在当前对话框中显示。
    要注意的是,<a>和<form>标签也都有“target”属性。如果要使用方法2,一定要如前所述加上“<base target="_self" />”,并且<a>和<form>中的“target”属性必须为空值。如果你指定了不为空的<a>和<form>的“target”属性,不管怎样,转向的页面都不会在当前对话框内部打开的。不知这是我的运行环境问题还是IE的BUG。
    方法2中对话框返回值可以直接指定“window.returnValue”。

  • 相关阅读:
    JSF大概介绍
    专门用于swing显示的工具类
    oracle 中查某表的所有列字段
    从实例谈OOP、工厂模式和重构
    C#中结构或类的嵌套 的方法
    怎样成为优秀的软件模型设计者
    Asp.NET编程时的几个小技巧
    在.net安装程序中部署oracle客户端全攻略
    在.NET中调用Oracle9i存储过程经验总结
    使用JNDI的一个容易忽略的错误
  • 原文地址:https://www.cnblogs.com/fumj/p/3200531.html
Copyright © 2011-2022 走看看