博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
window.open实现模式窗口
阅读量:6872 次
发布时间:2019-06-26

本文共 1275 字,大约阅读时间需要 4 分钟。

 看了些文章,实现模式窗口有两种方式。window.showModalDialog以及window.open。

 

一、方式介绍

window.open()支持环境: JavaScript1.0+/JScript1.0+/Nav2+/IE3+/Opera3+

 

showModalDialog() (IE 4+ 支持)

showModelessDialog() (IE 5+ 支持)
window.showModalDialog()方法用来创建一个显示HTML内容的模态对话框。
window.showModelessDialog()方法用来创建一个显示HTML内容的非模态对话框。

 

      由此可见,showModalDialog是IE的语法,其他浏览器并不支持。showModalDialog很好用,但是由于这个原因,有些需要支持多种浏览器客户端的情况就不能使用这个方法。

 

二、window.open()基本语法:

window.open(pageURL,name,parameters) 
其中:
pageURL 为子窗口路径 
name 为子窗口句柄 
parameters 为窗口参数(各参数用逗号分隔)

 

三、实现模式窗口

      有文章说parameters 中有一个参数modal=yes(dialog=yes效果一样),如果设定即为模式窗口。但是经笔者测试,增加这个参数,只是使弹出的窗口的最大化按钮为不可用,只是和不加该参数的唯一区别。此时,同样可以操作父窗口。这并不是我想要的模式窗口,我想要的是子窗口弹出后,在子窗口不关闭的情况下是不能操作父窗口的。最后发现很简单的一句话就可以完成这个功能,在body中加入 onBlur="window.focus();" 即可。

      但是这样还是有问题的,子窗口的任何输入操作都是不被允许的,只有按钮可以点击。

      修改一下:

      var result= window.open("URL","window","width=600px,height=400px, modal=yes,status=no");

      window.οnfοcus=function (){result.focus();};

      window.οnclick=function (){result.focus();};

      这样可以在点击父窗口的时候,将焦点赋予子窗口。      

 

      还有一个更好的通用的办法。

      引用:真正能够解决Dialog问题的方案只有一个,那就是Float Iframe,用Iframe代替Window.open(),用DIV来做遮罩,控制模态。而且,这样做还有另外一个好处,那就是处理窗口间的关系变得异常容易。用户也不容易ganjue到自己被打扰了——因为你可以让Iframe加载完成时再显示出来,甚至可以加上一些特效,使得Iframe的浮出更加柔和自然。

 

四、操作父窗口参数

弹出窗口中:   

    
  <script>   
  window.οnlοad=function(){   
  opener.document.all.obj.value=返回的值   
  }   
  </script>

 

 

转载地址:http://jbpfl.baihongyu.com/

你可能感兴趣的文章
BIND基础配置详解
查看>>
火狐增加安全端口,每次用都得查,好麻烦,自己记录一下
查看>>
c# 多线程排队队列实现的源码
查看>>
LDA入门与Java实现
查看>>
19_css背景控制.html
查看>>
计算机网络测试和故障诊断的发展
查看>>
Delphi 与 DirectX 之 DelphiX(29): TDIB.AddMonoNoise();
查看>>
Windows Server 2008 FTP用户目录隔离模式
查看>>
zookeeper-kafka环境搭建,生产者消费者终端测试
查看>>
Catnut 微博app第一个版本发布了
查看>>
python实现linux下指定目录下文件中的单词个数统计
查看>>
SQL SERVER存储过程中如何使用事务与try catch
查看>>
我的友情链接
查看>>
常见算法的记录
查看>>
ssh 问题
查看>>
Android源代码下载编译
查看>>
nhmicro添加信审功能
查看>>
eclipse安装maven插件-解决requires ‘bundle org.slf4j.api
查看>>
jsp---语句对象Statement
查看>>
java进阶之路
查看>>