如何通过窗口名字获得窗口对象
2008-08-20 19:50
260 查看
1、A窗口js:
window.name='window1';
2、B窗口js:
var Awin = window.open('','window1');
这时候有两种情况:
1、A窗口未关闭:得到A窗口对象,并传递给Awin这个变量
2、A窗口已关闭:打开一个新的空白页,如果你要让新的页面内容跟A窗口一样,写上需要的url便可,如:window.open('a.html','window1')
例子:
需求是A窗口是一个查询页面URL为search.html,点击“查询”后打开B窗口并显示查询结果,在B窗口上有个按钮,名叫“返回查询页面”,客户需要的是如果A页面未关闭,则窗口焦点转到A,但B不关,如果A关闭,则开个新的查询页面
实现:
A窗口js:window.name='window1';
B窗口按钮js:onclick="var Awin=window.open('search.html','window1');Awin.focus();"
改进:
不过这样有个不足之处,就是如果A页面存在的话,还会刷新一次A页面
修改后的实现:
B窗口按钮js:onclick="returnA();"
function returnA(){
var Awin=window.opener;
if(Awin.closed){
window.open('search.html');
}
else{
Awin.focus();
}
}
这样子如果A窗口没关则,点这个按钮后是画面焦点转换到A窗口,如果A窗口已关,则打开一个新的查询窗口
改进again:
试验一下,发现还是有不足之处,当A窗口已关闭,B窗口按“返回查询页面”按钮会打开一个新页面,但是再次点击又会打开一个新页面,现在变成两个查询页面,这是为什么呢?
因为你关闭了A页面后对于B页面来说他的opener已经关闭,再打开的新页面不是他的opener,所以在if(Awin.closed)的时候总是会判断为true
再次修改后的实现:
B窗口按钮js:onclick="returnA();"
var Awin = null;
function returnA(){
if(Awin == null){
Awin = window.opener;
}
if(Awin.closed){
Awin = window.open('search.html');
}
else{
Awin.focus();
}
}
window.name='window1';
2、B窗口js:
var Awin = window.open('','window1');
这时候有两种情况:
1、A窗口未关闭:得到A窗口对象,并传递给Awin这个变量
2、A窗口已关闭:打开一个新的空白页,如果你要让新的页面内容跟A窗口一样,写上需要的url便可,如:window.open('a.html','window1')
例子:
需求是A窗口是一个查询页面URL为search.html,点击“查询”后打开B窗口并显示查询结果,在B窗口上有个按钮,名叫“返回查询页面”,客户需要的是如果A页面未关闭,则窗口焦点转到A,但B不关,如果A关闭,则开个新的查询页面
实现:
A窗口js:window.name='window1';
B窗口按钮js:onclick="var Awin=window.open('search.html','window1');Awin.focus();"
改进:
不过这样有个不足之处,就是如果A页面存在的话,还会刷新一次A页面
修改后的实现:
B窗口按钮js:onclick="returnA();"
function returnA(){
var Awin=window.opener;
if(Awin.closed){
window.open('search.html');
}
else{
Awin.focus();
}
}
这样子如果A窗口没关则,点这个按钮后是画面焦点转换到A窗口,如果A窗口已关,则打开一个新的查询窗口
改进again:
试验一下,发现还是有不足之处,当A窗口已关闭,B窗口按“返回查询页面”按钮会打开一个新页面,但是再次点击又会打开一个新页面,现在变成两个查询页面,这是为什么呢?
因为你关闭了A页面后对于B页面来说他的opener已经关闭,再打开的新页面不是他的opener,所以在if(Awin.closed)的时候总是会判断为true
再次修改后的实现:
B窗口按钮js:onclick="returnA();"
var Awin = null;
function returnA(){
if(Awin == null){
Awin = window.opener;
}
if(Awin.closed){
Awin = window.open('search.html');
}
else{
Awin.focus();
}
}
相关文章推荐
- mfc 新创建的线程如何获得 窗口控件对象
- MFC通过对话框窗口句柄获得对话框对象指针
- 通过反射途径获得的对象如何自动注入spring Bean
- Phonegap安卓如何通过点击Contact获得联系人列表的名字和电话
- 编程如何获得通过草图创建的Revit构件关联的原始草图对象
- 如何通过代码获得应用程序主窗口的 指针?
- MFC通过对话框窗口句柄获得对话框对象指针
- android开发:如何通过drawable中的图片名字(String类型)来获得它的Id
- 通过枚举窗口获得窗口句柄名字并重命名窗口
- MFC通过对话框窗口句柄获得对话框对象指针
- 通过指定Shell Embedding/IEFrame类窗口的句柄获得浏览器(IE)对象
- 如何通过窗口句柄来获得一个程序窗口的大小
- 如何获得servletConfig对象和servletContext对象以及通过这两个对象获得初始化参数
- 如何判断一个C++对象是否在堆上(通过GetProcessHeaps取得所有堆,然后与对象地址比较即可),附许多精彩评论
- dll中如何获得调用者的窗口?得到窗口句柄那么DC也就可以得到了!
- 如何通过命令窗口创建MySQL数据库和表
- JSF如何在后台获得前台页面的标签对象
- c#如何获得ModelVisual3D中MeshGeometry3D对象
- extjs如何获得对象和动态设置响应…
- 如何获得另一个应用程序窗口中的文本 BY hangwire