如何制作window.open弹出Modal?

我目前正在使用window.showModalDilog打开一个模式弹出窗口,该窗口不允许父窗口执行任何操作。

但在谷歌搜索中,我发现它不是标准方法,各种浏览器已停止支持此function。

事实上我在Opera中遇到了这个问题。 Opera给了我javascript错误并在那时停止执行。 在那次错误之后什么都不会发生。

所以,我只剩下一个选项,那就是window.open。

但我想禁用父窗口(同样在showModalDilog中)。

我尝试下面的代码来做到这一点:

 $(window).load(function() { window.opener.document.body.disabled=true; }); $(window).unload(function() { window.opener.document.body.disabled=false; });  

但我在这方面失败了。

可以任何人建议我的代码,以便我可以使window.open弹出Modal?

希望我能很好地解释我的问题。 如果您需要更多信息,请询问我。

先感谢您….

更新:

我想在弹出窗口中打开一个Url,然后在打开url后执行某些操作,包括提交表单。

我的代码打开一个弹出窗口:

 window.open("https://www.picpixa.com/wp-content/plugins/create-own-object/plugin-google-drive/index.php", "socialPopupWindow", "location=no,width=600,height=600,scrollbars=yes,top=100,left=700,resizable = no"); 

请帮我….

更新1:

如果我只需点击多个按钮就可以打开一个弹出窗口,这对我也有帮助。 我的意思是如果我点击btn1弹出名为“temp”的应该打开。 但是当我点击btn2然后不再打开一个新的弹出“temp”将重新加载。 如果你能给我这个建议,它也可以帮助我解决80%的问题。

使用ExtJS方法的模态窗口。

在主窗口中

     function openModalDialog() { Ext.onReady(function() { Ext.create('Ext.window.Window', { title: 'Hello', height: Ext.getBody().getViewSize().height*0.8, width: Ext.getBody().getViewSize().width*0.8, minWidth:'730', minHeight:'450', layout: 'fit', itemId : 'popUpWin', modal:true, shadow:false, resizable:true, constrainHeader:true, items: [{ xtype: 'box', autoEl: { tag: 'iframe', src: '2.html', frameBorder:'0' } }] }).show(); }); } function closeExtWin(isSubmit) { Ext.ComponentQuery.query('#popUpWin')[0].close(); if (isSubmit) { document.forms[0].userAction.value = "refresh"; document.forms[0].submit(); } }   
Click to open dialog

在popupWindow 2.html中

      Save Cancel   

你不能制作window.open模式,我强烈建议你不要这样做。 相反,你可以使用像jQuery UI的对话框小部件 。

更新:

你可以使用load()方法:

 $("#dialog").load("resource.php").dialog({options}); 

这样它会更快但标记将合并到您的主文档中,因此任何提交都将应用于主窗口。

你可以使用IFRAME:

 $("#dialog").append($("").attr("src", "resource.php")).dialog({options}); 

这比较慢,但会独立提交。

我能够禁用父窗口。 然而,使弹出窗口始终保持提升不起作用。 下面的代码甚至适用于帧标签。 只需将id和class属性添加到帧标记中,它也可以很好地工作。

在父窗口中使用: