链接到一个新窗口,我需要在这个新窗口执行完相应操作后关闭新窗口,刷新最初的界面
可以设置一个定时器解决上面问题。
var newWin;
var timer;
function subWinClose() {
if (newWin.closed == true) {
alert('刷新');
window.clearInterval(timer);
}
}
function open_win() {
newWin = window.open('http://www.111.com');
timer = window.setInterval("subWinClose()", 500);
}
当打开多个新界面后,关闭其中一个新界面,最初界面会一直的刷新。导致上面的原因是因为全局变量的问题,timer会被新的界面覆盖掉,所以需要改写一下代码。
function open_win() {
var newWin = window.open('http://www.111.com');
var timer = window.setInterval(function(){
if (newWin.closed == true) {
alert('刷新');
window.clearInterval(timer);
}
}, 500);
}
知识点补充: setTimeout和setInterval的区别:
setTimeout和setInterval的语法相同。它们都有两个参数,一个是将要执行的代码字符串,还有一个是以毫秒为单位的时间间隔,当过了那个时间段之后就将执行那段代码。
不过这两个函数还是有区别的,setInterval在执行完一次代码之后,经过了那个固定的时间间隔,它还会自动重复执行代码,而setTimeout只执行一次那段代码。
function closeWin(){
alert('刷新');
setTimeout('closeWin()',1000);
}