请教一个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按钮才关闭,什么原因啊??请教高手啊
展开
 我来答
百度网友a19d193
2013-05-22 · TA获得超过3446个赞
知道大有可为答主
回答量:1464
采纳率:100%
帮助的人:1444万
展开全部
第二句window.open('','_self')导致的页面刷新。

应该你把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才有的特征。
lisany30201314
2018-03-09 · TA获得超过690个赞
知道小有建树答主
回答量:476
采纳率:80%
帮助的人:29.9万
展开全部
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()">
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式