最近在做一个项目,需要用到弹出一个子窗口(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用法简介
NULL 博文链接:https://shawnfree.iteye.com/blog/598885
window.showModalDialog以及window.open用法简介
ShowModalDialog函数的功能: 使用方法: 参数说明:
本文实例讲述了js的window.showModalDialog及window.open用法。分享给大家供大家参考。具体分析如下: 一、window.open()支持环境: JavaScript1.0+/JScript1.0+/Nav2+/IE3+/Opera3+ 二、基本语法: window.open...
showModalDialog和window.open
window.showModalDialog&&open.docx
1> window.showModalDialog()采用JS原理实现,同时父窗口不可操作,window.open()采用新创建一个窗口,同时父窗口可操作; 2> 父窗口与子窗口传递值的方式也有所不同,在子窗口中操作父窗口也语法也不同,分别为var...
window.open()和window.showModalDialog(),并解决了showModalDialog()弹出窗口中列表分页的问题。 提供了三个JS方法: (1)showWindow(sURL, width, height); (2)showWindowInPage(pageUrl, params, title, ...
window.open 函数的操作 取出showModalDialog中传过来的数据对象 request.getParameterMap()相关的操作实例
今天在项目中用到了弹出子窗口,就想到了用JavaScript实现的两种方法,一个是window.open();一个是window.showModalDialog()方法,后者是存在父子关系的一种弹出窗口,只有子窗关闭,父窗口才激活,并且可以传送参数...
window.showModalDialog()方法用来创建一个显示HTML内容的模态对话框,由于是对话框,因此它并没有一般用window.open()打开的窗口的所有属性。 window.showModelessDialog()方法用来创建一个显示HTML内容的非模态
因为项目中使用showModalDialog函数的地方特别多,所以必须用一个类似方法实现功能,也就是window.open() 首先是判断子窗口关闭,因为项目是在子窗口关闭(确定按钮)的时候向父页面传递值的。
嗨,Kavita3,它是Chrome浏览器中的一个已知问题,您可以使用window.open();希望对您有用
showModalDialog是jswindow对象的一个方法,和window.open一样都是打开一个新的页面。区别是:showModalDialog打开子窗口后,父窗口就不能获取焦点了(也就是无法操作了)。可以在子窗口中通过设置window.return...
javascript showModalDialog传值与FireFox的window.open 父子窗口传值示例代码。