您的位置:首页 > 电脑网络 > 笔记本 > 页面弹出窗口刷新父页面方式小结

页面弹出窗口刷新父页面方式小结

luyued 发布于 2011-02-03 06:36   浏览 N 次  
一个页面上弹出子窗常用的方法有两种:1.window.open()方式。2.window.showModalDialog()方式。两种弹出方式刷新父页面的方式也不一样。下面简单介绍一下:

window.open(pageURL,name,parameters) 方式打开:

Js代码
  1. window.open('b.html','window',"height=400,width=400,top=300,left=400,toolbar=1,menubar=1,scrollbars=no,resizable=yes,location=yes,status=1");
 window.open('b.html','window',"height=400,width=400,top=300,left=400,toolbar=1,menubar=1,scrollbars=no,resizable=yes,location=yes,status=1"); 

在b.html弹出页面上可用以下方式刷新父页面或调用父页面上的JS方法并且关闭b.html:

Js代码
  1. function closeReflush(){
  2. //window.opener.location.reload();
  3. window.opener.reloadparent();//reloadparent父页面的js方法
  4. self.close();//关闭子页面
  5. }
 function closeReflush(){//window.opener.location.reload();window.opener.reloadparent();//reloadparent父页面的js方法self.close();//关闭子页面} 

window.showModalDialog(pageURL,name,paramenters)方式打开刷新父页面方式多种:

方式一:

在父页面上调用代码:

Js代码
  1. function showDialog(){
  2. var returnVal=window.showModalDialog('c.html','window','resizable:yes;scroll:yes;status:yes;dialogWidth=400px;dialogHeight=400px;center=yes;help=no');
  3. if(!returnVal)return;
  4. //window.location.reload();
  5. window.reloadparent();
  6. }
  function showDialog(){ var returnVal=window.showModalDialog('c.html','window','resizable:yes;scroll:yes;status:yes;dialogWidth=400px;dialogHeight=400px;center=yes;help=no');if(!returnVal)return;//window.location.reload();window.reloadparent(); } 

通过showModalDialog的返回值判断是否要刷新父页面或调用父页面的JS。在子页面传递给父页面返回值:

Js代码
  1. function closeReflush(){
  2. //do something...
  3. window.returnValue="ok";
  4. self.close();
  5. }
 function closeReflush(){//do something... window.returnValue="ok";self.close(); } 

备注:判断子页面是关闭还是刷新(IE7还没测试) 。

Js代码
  1. window.onbeforeunload=function(){
  2. var n = window.event.screenX - window.screenLeft;
  3. var b = n > document.documentElement.scrollWidth-20;
  4. if(b && window.event.clientY < 0 || window.event.altKey){ alert("是关闭而非刷新");
  5. //window.event.returnValue="ok";
  6. window.returnValue = "ok"; //这里可以放置你想做的操作代码
  7. } else{
  8. alert("是刷新而非关闭");
  9. }
  10. }
 window.onbeforeunload=function(){ var n = window.event.screenX - window.screenLeft; var b = n > document.documentElement.scrollWidth-20; if(b && window.event.clientY < 0 || window.event.altKey){ alert("是关闭而非刷新"); //window.event.returnValue="ok"; window.returnValue = "ok"; //这里可以放置你想做的操作代码 } else{ alert("是刷新而非关闭"); } } 


MSN空间完美搬家到新浪博客!

上一篇:Ungeilivable 大年三十 下一篇:兔年快乐
广告赞助商