Javascript:关闭弹出窗口
我是JS noob,所以如果这个问题太“noobish”,请原谅 注意:函数很长,但只需向下滚动,直到看到//*********,因为这是重要的部分 我的职能:Javascript:关闭弹出窗口,javascript,popup,Javascript,Popup,我是JS noob,所以如果这个问题太“noobish”,请原谅 注意:函数很长,但只需向下滚动,直到看到//*********,因为这是重要的部分 我的职能: function ShowWindowN(userId,url,width,height,courseId) { var iev=getIEVer(); if(iev>=6&&iev<8){ width+=16*1; } var w=screen.availWidth<width
function ShowWindowN(userId,url,width,height,courseId) {
var iev=getIEVer();
if(iev>=6&&iev<8){
width+=16*1;
}
var w=screen.availWidth<width?screen.availWidth:width;
var csCookie=readCookie('course_settings_'+userId);
var found=false;
if(csCookie!=null){
csCookie=eval('({'+csCookie.replace(/&/g,',').replace(/=/g,':')+'})');
if(csCookie[courseId]!=null){
height+=1*csCookie[courseId].height;
found=true;
}
}
if(!found){
var plCookie=readCookie('player_settings_'+userId);
if(plCookie!=null){
plCookie=eval('({'+plCookie.replace(/&/g,',').replace(/=/g,':')+'})');
height+=1*plCookie.window_extra_height;
}else{
height+=16;
}
}
var h=screen.availHeight<height?screen.availHeight:height;
var left = (screen.availWidth/2)-(w/2);
//************
objMovieWindow=window.open(url, "movieWindow", "width=" + w + ", height=" + h + ", top=0, left="+left+", status=false, toolbar=false, menubar=false, location=false, directories=false, scrollbars=1, resizable=1");
objMovieWindow.focus();
//alert(objMovieWindow.name);
};
但这不起作用,给了我一个“未定义”的错误。基本上,我加载页面,然后单击链接启动弹出窗口,然后重新加载父页面,通过单击父页面上的链接,我想关闭弹出窗口
请告诉我如何关闭这个该死的弹出窗口?当您重新加载页面时,您将丢失对
objMovieWindow
的引用,因此您将无法调用objMovieWindow.close()
。如果要关闭窗口,必须避免重新加载页面
更新
一种解决方法是使用相同的名称再次调用
window.open()
,然后对从中返回的引用调用close()
。您的代码对我有效。所以问题不在代码本身。可能是Firefox吗?我在16楼,那我怎么能保存那个参考资料呢?因为我没有选择,页面必须重新加载…你可以再次打开它(使用相同的确切名称),然后调用close。不,必须关闭我第一次打开的窗口。。。可能的无法保存引用然后再次调用它?如果使用相同的名称再次open()
窗口,则不会打开新窗口,而是使用与以前相同的窗口并返回相同的引用。试一试。不,没有办法保存参考资料。
objMovieWindow.close();