Chrome 37+模式对话框returnValue的解决方法
我有一个父调用者页面和一个模态页面,当模态页面关闭时,调用者页面从弹出模式页面获得一个returnValue。 即使是旧版本Chrome的showModalDialog()
总是返回undefined,有很多变通办法[ javascript – showModalDialog在Chrome中没有返回值 。
但是现在Chrome37 +中的window.showModalDialog()已被设计弃用[ http://blog.chromium.org/2014/07/disabling-showmodaldialog.html] ,那些获取弹出窗口的returnValue的变通办法不再适用。
比我尝试过window.open()
,但window.open的行为与showModalDialog
完全不同,并且它不容易获得正确的returnValue(因为window.open()
是异步的)。
那么有一个完美的解决方法吗?
您可以使用Jquery模式对话框架
JQuery模式对话框示例
$( ".selector" ).dialog({ close: function( event, ui ) { alert('dialog closed'); return; } });
或Fancybox框架
Fancybox示例
$(".fancybox").fancybox({ afterClose : function() { alert('dialog closed'); return; } });
两个框架都提供回调处理程序,以便您可以将值存储或传递给其他函数…