关于在JS中,子窗口刷新父窗口,子窗口仍保持焦点的问题?

liu奇峰 发布于 2012/11/06 16:23
阅读 2K+
收藏 0
父窗口A,打开子窗口B后,子窗口B是当前活动窗口。当子窗口刷新父窗口(我用的是opener.location.reload();)时,父窗口会变成当前的活动窗口,子窗口失去了焦点。我用的是IE7环境。
请教高手,有什么办法让子窗口仍保持焦点呢?
加载中
1
曾建凯
曾建凯
var win = window.open();
setTimeout(function() {
    if (win)
        win.focus();
}, 300);

用本地变量将open的窗口持有,通过timeout来call focus。

你的情况我估计是:

var win = window.open();
var winRefresh = function(isFocus) {
	if (win) {
		win.location.reload();
		if (isFocus) {
			setTimeout(function() {
				if (win)
					win.focus();
			}, 300);
		}
	}
};
liu奇峰
liu奇峰
这好像不是我想要的。我的意思是 父页面中用window.open打开一个子页面,在子页面中通过xxx.js文件调用父页面form.submit()方法重新加载父页面,再用window.location.reload(true);刷新子页面。但是现在form.submit()执行之后,焦点会跑到父页面,刷新后的子页面自动最小化。怎么让子页面刷新后不最小化并获得焦点呢
0
喜之郎
喜之郎

其它浏览器试过吗?

试试这样行不行:你在父窗口定义一个按钮,id为“refresh”,单击这个按钮刷新父窗口。然后在子窗口中调用:

opener.document.getElementById(“refresh”).click();

0
VmLia
VmLia

在子页面随便写个事件,运行下面的js代码:

//如果你的子页面是window.open(url);方式打开

window.opener.location.reload();

//如果你的子页面是div+iframe形式

window.parent.location.reload();

返回顶部
顶部