`
FengShen_Xia
  • 浏览: 279338 次
  • 性别: Icon_minigender_1
  • 来自: 东方水城
社区版块
存档分类
最新评论

window.open()代替window.showModalDialog()问题

阅读更多

      最近在做一个项目,需要用到弹出一个子窗口(sub.jsp)显示一些信息,然后在sub.jsp中需要调用父窗口(main.jsp)里的js方法,同时在打开了sub.jsp以后,整个浏览器窗口中最前面的页面是sub.jsp。

 

      开始想到的方法是用showModalDialog()来打开一个新的窗口,这样打开sub.jsp页面时该页面就在最前面,在我本机上通过IE(IE7.0)浏览器是能在sub.jsp里调用main.jsp里方法的。但是当我把程序部署到客户服务器上,通过客户浏览器打开sub.jsp页面时可以让其在最前面,但是点击调用main.jsp中方法时会出错(重新弹出一个窗口),而客户的浏览器是IE6版本的。最后实在没有办法只能考虑用window.open()来实现该功能,这个时候就需要解决的问题是让window.open()打开的页面在最前面,上网查找了一些资料,提到的解决方法如下:

var newWin = window.open('sub.jsp','newWin','height=200,width=400,top=200,left=200,toolbar=no,menubar=no,scrollbars=no, resizable=no,location=no,status=no');

window.onfocus=function (){  
    if(newWin && !newWin.closed){
        newWin.focus();
    }
}; 

window.document.onfocus=function (){  
    if(newWin && !newWin.closed){
        newWin.focus();
    }
}; 

window.document.onclick=function (){  
    if(newWin && !newWin.closed){
        newWin.focus();
    }
}; 

window.document.ondblclick=function (){  
    if(newWin && !newWin.closed){
        newWin.focus();
    }
}; 

     

      通过测试,以上方法并不能真正解决让sub.jsp保持在最前面。

      后来,想了个办法,在sub.jsp页面中,添加如下代码: 

<body onblur="focus();">

      这样可以让window.open()打开的页面保持在最前面。

 

 

 

 

分享到:
评论

相关推荐

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

    `window.showModalDialog` 和 `window.open` 都是JavaScript提供的两种打开新窗口的方法,但它们在功能和使用场景上有着显著的区别。 首先,我们来详细探讨`window.showModalDialog`。`showModalDialog`方法用于...

    window.showModalDialog以及window.open用法简介

    Window.showModalDialog 和 Window.open 用法简介 Window.showModalDialog 和 Window.open 都是 JavaScript 中的方法,用于创建新窗口或对话框,下面分别介绍它们的用法和参数。 一、Window.open() 方法 Window....

    ShowModalDialog与window.open的区别

    ### ShowModalDialog与window.open的区别 #### 一、概述 在Web开发中,有时需要创建新的浏览器窗口或对话框来实现特定功能,如显示警告、输入数据等交互操作。JavaScript 提供了两种常用的方法来创建这类窗口:`...

    父子窗口传值window.showModalDialog以及window.open用法简介

    window.showModalDialog以及window.open用法简介

    Window.ShowModalDialog使用手册

    开发者更倾向于使用`window.open()`配合`display: none`的CSS和JavaScript来模拟模态对话框,或者使用Bootstrap、jQuery UI等库提供的模态插件。 总的来说,虽然`Window.showModalDialog()`在某些场景下仍可能有其...

    showModalDialog和window.open

    ### showModalDialog和window.open在Web开发中的应用与区别 在Web开发中,`showModalDialog`和`window.open`是两种用于打开新窗口或对话框的方法,但它们各自有着独特的特性和应用场景。以下是对这两种方法的详细...

    window.showModalDialog(javascript)

    在其他浏览器中,如Firefox、Chrome和Safari,可能需要使用其他方法,如`window.open()`,配合CSS和JavaScript来实现类似的效果。 - 模态对话框可能会对用户体验造成影响,因为它会阻塞用户的交互,因此在现代Web...

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

    JavaScript中的`window.showModalDialog`和`window.open`都是用于打开新窗口的方法,但它们有着不同的特性和用途。 首先,`window.open`方法是JavaScript中最常见的打开新窗口的方式,它适用于所有的主流浏览器,如...

    showModalDialog open弹出子窗口操作parent、opener父窗口及跨域处理

    1&gt; window.showModalDialog()采用JS原理实现,同时父窗口不可操作,window.open()采用新创建一个窗口,同时父窗口可操作; 2&gt; 父窗口与子窗口传递值的方式也有所不同,在子窗口中操作父窗口也语法也不同,分别为var...

    window.showModalDialog方法的使用

    在JavaScript编程中,`window.showModalDialog`是一个用于打开模态对话框的函数,它能够创建一个新的浏览器窗口或者在当前窗口内显示一个弹出层,阻止用户与父窗口的交互,直到用户关闭对话框为止。这个方法在创建...

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

    标题 "window.ShowModalDialog在Chrome中不起作用" 涉及到的是JavaScript中一个特定的浏览器兼容性问题。`window.showModalDialog()` 是一个古老的JavaScript方法,用于在当前页面上打开一个模态对话框,该对话框...

    JS控制弹出页面窗口控件(openWin)

    window.open()和window.showModalDialog(),并解决了showModalDialog()弹出窗口中列表分页的问题。 提供了三个JS方法: (1)showWindow(sURL, width, height); (2)showWindowInPage(pageUrl, params, title, ...

    js实现window.open不被拦截的解决方法汇总

    文章中提到了几种实现 `window.open()` 方法不被浏览器拦截的解决方法,其中包括新建 `a` 标签模拟点击、使用 `window.showModalDialog()` 方法和使用 `setTimeout()` 与 `window.open()` 结合的方式。 1. 新建 `a`...

    window.showModalDialog('d.html',fault,'');

    在实际开发中,开发者可能会寻找更现代、更兼容的替代方法,如 `window.open`、Bootstrap 模态框、Vue 或 React 的自定义组件等。 压缩包中的 'd.html' 文件可能是用来展示 `showModalDialog` 的示例页面,而 'c....

    window.open 函数的操作

    本篇内容详细介绍了 `window.open` 函数的基本用法及其在实际开发中的应用场景,同时探讨了如何从 `showModalDialog` 中获取数据对象的方法,以及 `request.getParameterMap()` 在处理 HTTP 请求参数时的具体使用。...

    浅谈JavaScript窗体Window.ShowModalDialog使用

    总的来说,`window.showModalDialog()`和`window.showModelessDialog()`是JavaScript中较老的弹出对话框技术,它们提供了对对话框外观和行为的控制,但在现代Web开发中,由于浏览器兼容性和可访问性问题,已被其他...

Global site tag (gtag.js) - Google Analytics