真正的用window.open()代替window.showModalDialog()

本文介绍了一种利用window.open完全替代window.showModalDialog的方法,以克服模式窗口的局限性。通过在main.html中打开modalWindow.html,并在不同事件(如focus、click等)中使新窗口获取焦点,实现类似模态对话框的效果。在modalWindow.html中,可以调用父窗口的方法,例如opener.functionName(param)。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

模式窗口太过于局限性,所以我研究了一个完全可以用  window.open()代替window.showModalDialog()的方法,其资料贴在了下面:

 

有两个页面,一个是调用页面---main.html,一个是被调用页面---modalWindow.html

main.html

-----------------------------------------------------------------------------------------------------
 <script>
  
 newWin=null;
  
function abc()
{
newWin =window.open('modalWindow.html','newWin','height=200,width=400,top=200,left=200,toolbar=no,menubar=no,scrollbars=no, resizable=no,location=no,status=no');
 
}

window.οnfοcus=function (){  

 if(newWin){
  if(!newWin.closed)
   newWin.focus();
 } 
};

window.document.οnfοcus=function (){  


 if(newWin){
  if(!newWin.closed)
 newWin.focus();
  
 } 
 
};

window.document.οnclick=function (){  
 if(newWin){
  if(!newWin.closed)
 newWin.focus();
 } 
};

window.document.οndblclick=function (){  


 if(newWin){
  if(!newWin.closed)
 newWin.focus();
  
 } 
};

</script>

-----------------------------------------------------------------------------------------------------

modalWindow.html

-----------------------------------------------------------------------------------------------------

sub window!!!!

在这个页面  modalWindow.html  中的方法可以调用父窗口的方法

其用法是  opener.functionName(param);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值