例如:
A页面中使用 window.open('B.html'); 在新窗口打开B页面;
B页面点击返回按钮,如果A页面窗口存在则给予A页面所在窗口焦点(即显示A窗口),如果A页面窗口不存在,则在新窗口打开
B页面js代码如下:
var Awin = null;//A 窗口对象 function GoBack() { if (Awin == null) { Awin = window.opener;//返回对创建此窗口的窗口的引用(A窗口对象) } if (Awin.closed) { Awin = window.open(Awin.location.href); } else { //方法1====== Awin.focus();//无效 //=========== //方法2======= window.blur(); setTimeout(Awin.focus, 0);//无效 //============
//方法3======== Awin.alert('返回');//可行,但是体验不好 //============ } }
window.focus() 方法可把焦点给予一个窗口
在Chrome、FireFox、360浏览器、或者较高版本IE等等 无效
网上搜索提到用 setTimeout 延时执行可解决,经尝试还是没有效果
用 alert 提示信息就可以,但是用户体验不好
用 alert 提示信息就可以,但是用户体验不好
请问各位大神有什么好的解决方法,谢谢!
相关问题
- iframe的里内容看不到,但却点得到
- angular脚手架在ie9+下兼容问题
- linux下安装chrome出错?
- selenium+eclipse 打开网页时报错
- 请问是否有转换 纯JavaScript 或是 JQuery Request 的工具?
lz,请问这个问题解决了没有啊 ,我也遇到同样的需求同样的问题 , 研究了好久也没有找到完美的解决方案;可以相互分享下不
setTimeout(Awin.focus(), 100);
在A中 为window定义名称(因为默认是空),然后在B打开此名称的窗口。代码如下:
页面A代码
页面B代码:
window.open用户体验就是不好,建议不要用。你可以弹出一个div,div里面可以嵌套一个iframe