`
wangyi529
  • 浏览: 35117 次
  • 性别: 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>
分享到:
评论

相关推荐

    window.open打开新窗口参数设置

    ### window.open 打开新窗口参数设置详解 在前端开发中,`window.open()` 方法是浏览器内置的一个功能,用于在JavaScript中打开新的浏览器窗口。本文将深入探讨如何使用 `window.open()` 方法及其参数设置,帮助...

    window.showModalDialog模式对话框和 window.open的区别

    这些文件可能用于实现用户管理或人员选择等功能,与`window.showModalDialog`和`window.open`的使用直接关联不大,但在实际Web应用中,这些JSP文件可能会用到这两种弹窗方法来创建用户交互界面。例如,`member-admin...

    window.open.txt

    `window.open()`是JavaScript中一个非常实用的方法,它用于在一个新的浏览器窗口或标签页中打开一个新的文档。此方法通常被用作弹出窗口或新标签页的功能实现基础。其基本语法为: ```javascript window.open(URL, ...

    ShowModalDialog与window.open的区别

    而 `window.open` 没有直接提供这样的机制,通常需要通过回调函数等方式实现。 #### 八、应用场景建议 - 如果目标浏览器主要是 Internet Explorer,并且需要模态对话框的功能,可以选择使用 `ShowModalDialog`。 -...

    window.open 控制

    在本文中,我们将深入探讨如何使用`window.open()`来创建并控制弹出窗口,尤其是如何实现窗口的最大化和获取焦点。 首先,`window.open()` 的基本语法如下: ```javascript window.open(url, name, features); ```...

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

    在Web开发中,JavaScript提供了许多内置对象,用于与浏览器窗口和文档进行交互,而window.open()是其中非常重要的一个方法,它能够用来打开一个新的浏览器窗口,并且可以设置窗口的各种属性。本文将详细介绍window....

    SJ模态窗体,WIndow.Open小实例

    "SJ模态窗体,Window.Open小实例"这个主题探讨的是如何使用JavaScript来实现一个模态窗体,特别是利用`window.open()`函数创建一个新的浏览器窗口。 `window.open()`是JavaScript中的一个内置函数,它用于打开一个...

    js中window.open的参数及注意注意事项.docx

    在Web开发中,`window.open` 是一个非常常用的方法,它允许我们从当前窗口打开一个新的浏览器窗口或者在一个已经存在的窗口中加载一个新的文档。然而,在实际应用过程中,开发者可能会遇到一些意想不到的问题,尤其...

    js的window.showModalDialog及window.open用法实例分析

    总结来说,`window.open`适合创建非阻塞的新窗口,而`window.showModalDialog`和`window.showModelessDialog`则用于创建具有特定交互模式的对话框。选择哪个方法取决于应用的具体需求,比如是否需要用户在完成对话框...

    JS中window.open全屏命令解析及使用示例

    在JavaScript中,`window.open` 是一个非常常用的方法,它用于在浏览器中打开新的窗口或者标签页。这个方法可以接受三个参数:URL、窗口名称和特性字符串,分别用于指定要打开的页面、新窗口的名称以及新窗口的配置...

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

    在JavaScript编程中,`window.open()` 是一个非常重要的方法,用于在浏览器中打开新的窗口或标签页。在某些场景下,比如需要用户专注于特定任务时,我们可能希望使用这个方法来打开固定模式的窗口,避免用户操作其他...

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

    这段代码中的`omiga_window`函数通过`window.open`打开一个名为`12.htm`的新窗口,并设置了一系列参数以实现全屏模式。需要注意的是,`fullscreen=1`这个参数并非所有浏览器都支持,因此实际应用时可能需要进行兼容...

    window.open关于浏览器拦截问题分析及解决方法

    JavaScript中的`window.open()`函数是用于创建或打开一个新的浏览器窗口,或者在已存在的窗口中加载新的内容。这个函数在Web开发中广泛应用于实现各种交互功能,例如打开新窗口以显示详细信息、打印页面或者弹出...

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

    - `window.open()`是最常见的弹出窗口方式,可以自定义参数,如窗口大小、位置等。 - `window.showModalDialog()`是IE4+支持的模态对话框,它会阻塞用户对父窗口的交互直到对话框关闭。 - `window....

    Selenium处理弹出窗口.docx

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

    window.close(); 关闭浏览器窗口js代码的总结介绍

    - 这个组合首先用`window.open`打开一个空白页面到当前窗口自身(`"_self"`),然后再调用`window.close()`关闭。在某些浏览器中,这种方法可以成功关闭窗口,因为它实际上是在尝试替换当前窗口的内容,然后立即...

    js中window.open的参数及注意注意事项

    JavaScript 中的 window.open 方法是一个非常实用的函数,主要用于在浏览器中打开一个新的窗口,并且可以配置这个新窗口的很多属性。下面,我们将详细讲解 window.open 方法可以接受的参数以及在使用过程中需要注意...

    'window.ShowModalDialog'在Chrome中不起作用

    `window.open()` 可以创建一个新的浏览器窗口或者打开一个已经存在的窗口,并且可以设置新窗口的各种属性,如位置、大小、是否显示工具栏等。虽然它不能直接提供与 `showModalDialog()` 相同的模态效果,但可以通过...

Global site tag (gtag.js) - Google Analytics