模态窗口,在IE下是模态,在FF下不是模态,作了最大的努力来实现通用

来源:互联网 发布:林俊杰 小酒窝 知乎 编辑:程序博客网 时间:2024/05/18 07:35

代码源自网络,并自己整理吸收,调试通过

 伦理片 http://www.dotdy.com/

IE可以用showModalDialog方法打开模态窗口。
 
FF为了安全,执行方法window.open('openwin.html','newWin','modal=yes,width=200,height=200,resizable=no,scrollbars=no');
指定了modal=yes,打开的也不是模态窗口,是普通窗口

在IE下是模态,在FF下不是,作了最大的努力来实现通用,外观到是还可以。

打开对话框的方法如下:  
Js代码  收藏代码
  1. function openModal()  
  2. {     
  3.     popupDialog('child.html',200,200);  
  4. }  
  5. function showMsg(obj)  
  6. {  
  7.     alert(obj);  
  8. }  
  9. function popupDialog(url,width,height)  
  10. {        
  11.     var x = parseInt(screen.width / 2.0) - (width / 2.0);    
  12.     var y = parseInt(screen.height / 2.0) - (height / 2.0);    
  13.     var isMSIE= (navigator.appName == "Microsoft Internet Explorer");  //判断浏览器    
  14.   
  15.     if (isMSIE)  
  16.     {              
  17.         retval = window.showModalDialog(url, window, "dialogWidth:"+width+"px; dialogHeight:"+height+"px; dialogLeft:"+x+"px; dialogTop:"+y+"px; status:no; directories:yes;scrollbars:no;Resizable=no; "  );    
  18.     }   
  19.     else  
  20.     {    
  21.         var win = window.open(url, "mcePopup""top=" + y + ",left=" + x + ",scrollbars=" + scrollbars + ",dialog=yes,modal=yes,width=" + width + ",height=" + height + ",resizable=no" );    
  22.         eval('try { win.resizeTo(width, height); } catch(e) { }');    
  23.         win.focus();                
  24.     }    
  25. }    
 

在被打开的对话框里,代码:  
Js代码  收藏代码
  1. function doReload()  
  2. {      
  3.     var isMSIE= (navigator.appName == "Microsoft Internet Explorer");    
  4.     if (isMSIE)  
  5.     {    
  6.         //IE  
  7.         //parent.dialogArguments.location.reload();    
  8.         parent.dialogArguments.showMsg("345");   
  9.     }  
  10.     else  
  11.     {   
  12.         //FF  
  13.         //parent.opener.document.location.reload();   
  14.         window.opener.showMsg("345");   
  15.     }       
  16.     //关闭窗口用的是 top.close();  这个IE、FireFox都支持。   
  17.     //top.close();   
  18.     window.close();    
  19.   }   
 

两种浏览器的打开对话框的方式不一样  
IE:window.showModalDialog(url, window, "dialogWidth:300px; dialogHeight:300px; dialogLeft:200px; dialogTop:200px; status:no; directories:yes;scrollbars:no;Resizable=no; "  ); 

FireFox: window.open(url, "mcePopup", "top=200,left=200,scrollbars=no,dialog=yes,modal=yes,width=300,height=300,resizable=no" );  

关闭窗口时:  
window.close();   top.close();  这个IE、FireFox都支持。
0 0
原创粉丝点击