`
wangyi529
  • 浏览: 34136 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类

window.open实现模式窗口

阅读更多

实现模式窗口有两种方式。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.onfocus=function (){result.focus();};
      window.onclick=function (){result.focus();};

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

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

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

四、操作父窗口参数

弹出窗口中: 
  
  <script> 
  window.onload=function(){ 
  opener.document.all.obj.value=返回的值 
  } 
  </script>
分享到:
评论

相关推荐

    javascript中window.open在原来的窗口中打开新的窗口(不同名)

    本文给大家介绍使用window.open在原来的窗口中打开新的窗口,涉及到win.open新窗口相关知识,对本文感兴趣的朋友参考下

    javascript window.open打开新窗口后无法再次打开该窗口问题的解决方法

    在系统中,会一些地方使用javascript open window。比如打开固定模式的窗口,防止用户进行其他操作。 参数: 代码如下:参数 | 取值范围 | 说明alwaysLowered | yes/no | 指定窗口隐藏在所有窗口之后 alwaysRaised | ...

    js模式化窗口问题![window.dialogArguments]

    前些天做项目时遇到了个浏览器兼容问题,解决后记录一下,也将模式化的资料放上!...a.window.open(pageURL,name,parameters); b.window.showModalDialog()方法用来创建一个显示HTML内容的模态对话框(IE 4+支持) c.win

    Selenium处理弹出窗口.docx

    这里介绍了chooseCancelOnNextConfirmation、chooseOkOnNextConfirmation等JavaScript脚本实现的弹出窗口处理函数,selenium会弹出网页窗口,因为它重写了window.open在文件selenium-browserbot.js函数BrowserBot....

    实现浏览器全屏窗口的几种方法

    浏览网页,时常会发现自己的浏览器窗口不见了,但网页内容还在。这种效果是不是很神奇呢?看看实现方法!

    JS中表单的使用小结

    使用window.showDialog弹出的模式窗口 window.dialogArguments.location.reload(); 2.javascript弹出窗口的两种实现方式 —下面给两个弹出屏幕居中窗口的例子 window.open()方式 代码如下: function ShowDialog...

    Open New Window in Incognito mode (ONWI)-crx插件

    语言:русский 隐姓埋名模式打开新窗口的Google Chrome扩展。 插件,允许您在隐姓埋名模式中打开新窗口

    屏蔽IE弹出您查看的网页正在试图关闭窗口,是否关闭此窗口的方法

    window.open(“”,”_self”); window.close(); 如果要全屏显示(去掉IE的工具栏、地址栏和菜单栏等信息),则只能用window.open();的方法。如果第一个页面就要全屏显示,则需要设置一个中转页面。中转页面代码如下...

    js实现select跳转菜单新窗口效果代码分享(超简单)

    这是一款基于js实现select跳转菜单新...select onchange=window.open(this.options[this.selectedIndex].value) name=select&gt; &lt;option value=//www.jb51.net/jiaoben/ selected=selected&gt;脚本下载 &lt;option valu

    jQuery实现优雅的弹窗效果(6)

    弹窗是网页中经常看到的效果,以前的弹窗是用window.open()等方式在浏览器窗口新建另一个新窗口来完成的,这种弹窗方式现在已经被很多浏览器所拦截。今天我们来用更加友好的方式来实现弹窗效果。完成的功能效果如图...

    phpdesktop:开发桌面应用程序,例如开发网站=> phpdesktop

    width:窗口打开的默认宽度,链接打开窗口宽度设置可用window.open传宽度参数 height:窗口打开的默认高度,链接打开窗口高度设置可用window.open传高度参数 title:主窗口打开的标题,其它窗口的标题根据网页titile...

    detect-throwaways:演示

    ##漏洞利用的工作原理该漏洞利用 window.open 与存在于隐私屏障另一侧的目标窗口名称一起使用。 如果您的主浏览器选项卡中有一个名为“myrealwindow”的窗口,则指向该名称的链接或 javascript window.open 将更改...

    js使用小技巧

    无关闭按钮IE window.open("aa.htm", "meizz", "fullscreen=7"); 统一编码/解码 alert(decodeURIComponent(encodeURIComponent("http://你好.com?as= hehe"))) encodeURIComponent对":"、"/"、";" 和 "?"也编码 ...

    精通javascript

    第1章(\第1章) ...1.将该实例复制到C:\Inetpub\wwwroot...• 14.4.htm window.open()方法 • 14.5.htm 用链接和按钮实现窗口打开 • 14.6.htm 窗口的打开和关闭 • 14.7.htm 安全关闭...

    精通JavaScript

    1.本书附源代码共计381个,其运行环境如下: IE 5或更高版本 Mozilla Firefox 1.5.0.3或更高版本 服务器采用IIS5.1 或以上版本 ...• 14.4.htm window.open()方法 • 14.5.htm ...

    计算机二级Web程序设计模拟卷(三).doc

    下列语句中,正确打开名为"window2"的新窗口的JavaScript语句是______。 A.open.new("http://www.sinA.COB.cn","window2") B.new.window("http://www.sinA.con.cn","window2") C.new("http://www.sinA.com.cn",...

    开发项目用SWING与RCP与SWT.JFACE的分析

    因为SWT应用了JNI技术,因此同时也要找到相对应的JNI本地化库文件,由于版本和操作平台的不同,本地化库文件的名称会有些差别,比如SWT-WIN32-2116.DLL是Window平台下Eclipse Build 2116的动态库,而在Unix平台相应...

    javascript的对话框详解与参数

    对话框可以分为模式对话框和无模式对话框两种,两者区别是在对话框被关闭之前用户能否在同一应用程序的其他地方进行工作。举例说明:打开文件对话框便是典型的模式对话框,在你选择...body onload=”window.open( ht

    AJAX基础概念、核心技术与典型案例(内涵动态实例)

    JsWeb 传统的JavaScript模式实现刷新 IframeWeb 基于框架的不刷新模式 AjaxWeb 基于Ajax的Web 2.0模式的刷新模式 AsyncAjaxSample Ajax异步调用的完整示例 第2章(/C02/) 2.1.htm 3...

    API之网络函数---整理网络函数及功能

    OpenFile 这个函数能执行大量不同的文件操作 OpenFileMapping 打开一个现成的文件映射对象 QueryDosDevice 在Windows NT中,DOS设备名会映射成NT系统设备名。该函数可判断当前的设备映射情况 ReadFile 从文件中...

Global site tag (gtag.js) - Google Analytics