Javascript:关闭弹出窗口

时间:2012-11-18 04:14:06

标签: javascript popup

我是一个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();

但这不起作用,并给我一个“未定义”的错误。基本上,我加载页面,然后单击链接以启动弹出窗口,然后重新加载父页面,并通过单击父页面上的链接来关闭弹出窗口。

请告诉我如何关闭该死的弹出窗口?

1 个答案:

答案 0 :(得分:2)

当您重新加载页面时,您将失去对objMovieWindow的引用,因此您将无法拨打objMovieWindow.close()。如果要关闭窗口,则必须避免重新加载页面。

<强>更新

一种解决方法是再次使用相同的名称调用window.open(),然后对从此返回的引用调用close()