我是一个JS菜鸟,所以如果这个问题太“无趣”,请原谅。
注意:该功能很长,但只需向下滚动直至看到// * ** * ** * ** 因为这是重要的部分。
我的功能:
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);
};
如果你查看最后一行的alert(),这不起作用,它会给我一个“权限被拒绝”的错误。我还有一个函数,说明“close_me()”就是这样:
objMovieWindow.close();
但这不起作用,并给我一个“未定义”的错误。基本上,我加载页面,然后单击链接以启动弹出窗口,然后重新加载父页面,并通过单击父页面上的链接来关闭弹出窗口。
请告诉我如何关闭该死的弹出窗口?
答案 0 :(得分:2)
当您重新加载页面时,您将失去对objMovieWindow
的引用,因此您将无法拨打objMovieWindow.close()
。如果要关闭窗口,则必须避免重新加载页面。
<强>更新强>
一种解决方法是再次使用相同的名称调用window.open()
,然后对从此返回的引用调用close()
。