请教一个js问题,关于window打开新窗口,并关闭新窗口。
首先我用下面方法打开一个新页面:window.showModalDialog(url,window,'dialogWidth:260px;dialogHeight:280...
首先我用下面方法打开一个新页面:
window.showModalDialog(url,window, 'dialogWidth:260px;dialogHeight:280px;edge:sunken;help:no;resizable:yes;scroll:no;status:no;unadorned:no ');
然后在新页面写了一个close按钮(onclick="close();"),触发后关闭当前页面:
function close(){
window.opener=null;
window.open('','_self');
window.close();
}
问题是:新页面打开后,点击close按钮,页面自动刷新后最大化了,然后再次点击close按钮才关闭,什么原因啊??请教高手啊 展开
window.showModalDialog(url,window, 'dialogWidth:260px;dialogHeight:280px;edge:sunken;help:no;resizable:yes;scroll:no;status:no;unadorned:no ');
然后在新页面写了一个close按钮(onclick="close();"),触发后关闭当前页面:
function close(){
window.opener=null;
window.open('','_self');
window.close();
}
问题是:新页面打开后,点击close按钮,页面自动刷新后最大化了,然后再次点击close按钮才关闭,什么原因啊??请教高手啊 展开
2个回答
展开全部
第二句window.open('','_self')导致的页面刷新。
应该你把function close()这个函数删掉就解决问题了。有用请采纳。
你即便不定义这个函数onclick="close()"也能关闭窗口,如果关不了就用onclick="window.close()"
应该你把function close()这个函数删掉就解决问题了。有用请采纳。
你即便不定义这个函数onclick="close()"也能关闭窗口,如果关不了就用onclick="window.close()"
追问
函数必须要有,因为我还要触发一些额外的操作。至于 window.opener=null; window.open('','_self');window.close();这两行代码是我上网查的,强制关闭窗口(不会弹出提示框)用的,而且起到关闭窗口的作用了,只是在刷新后第二次点击的时候起作用。即便是我去掉window.open('','_self')这句,直接window.close(),也会刷新一遍后窗口最大化,应该不是那句的问题.....
追答
那你把onclick="close()"变成onclick="closeWindow()"好了,然后
function closeWindow() {
close();//和window.close()等效,也是你自定义close函数出问题的原因,你和window.close()冲突。例如var a = 5; window.a = 6; alert(a); 你会看到6而不是5。
}
从网上找的代码最好测试一下,很多都有兼容性问题。以上代码我在firefox上测试是没问题的,而且一般来说对于window.open打开的新窗口执行close就会关闭,根本不会有提示窗口的。那种强制关闭之类的不是IE6就是IE5.5才有的特征。
展开全部
function openNewWindow() {
window.open("forwardnewpage.jsp","","left=30,top=30,height=620,width=820,toolbar=no,menubar=no,scrollbars=no,resizable=no,status=no,location=no,directories=no,copyhistory=no");
window.opener=null;
window.open("","_self");
window.close();
}
<input type="button" value="打开新窗口关闭旧的" onclick="openNewWindow()">
window.open("forwardnewpage.jsp","","left=30,top=30,height=620,width=820,toolbar=no,menubar=no,scrollbars=no,resizable=no,status=no,location=no,directories=no,copyhistory=no");
window.opener=null;
window.open("","_self");
window.close();
}
<input type="button" value="打开新窗口关闭旧的" onclick="openNewWindow()">
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询