showModalDialog, dans le test, fonctionne normalement dans IE et Firefox, mais dans Google, il n'y a pas de réponse après avoir cliqué. J'ai regardé en ligne et j'ai découvert que Google Chrome ne prend pas en charge la boîte de dialogue modale showModalDialog et ne peut pas renvoyer la valeur de retour que j'ai obtenue. une solution
<script type="text/javascript"> //开启模式窗口 function showMyModal() { var url = "SelectUser.aspx"; //传入参数示例 var modalReturnValue = myShowModalDialog(url, window, 300, 500); //alert(modalReturnValue.name); //窗口关闭后执行某些方法 //TODO sth } //弹出框google Chrome执行的是open function myShowModalDialog(url, args, width, height) { var tempReturnValue; if (navigator.userAgent.indexOf("Chrome") > 0) { var paramsChrome = 'height=' + height + ', width=' + width + ', top=' + (((window.screen.height - height) / 2) - 50) + ',left=' + ((window.screen.width - width) / 2) + ',toolbar=no, menubar=no, scrollbars=no, resizable=no, location=no, status=no'; window.open(url, "newwindow", paramsChrome); } else { var params = 'dialogWidth:' + width + 'px;dialogHeight:' + height + 'px;status:no;dialogLeft:' + ((window.screen.width - width) / 2) + 'px;dialogTop:' + (((window.screen.height - height) / 2) - 50) + 'px;'; tempReturnValue = window.showModalDialog(url, args, params); } return tempReturnValue; } </script>
Enfin, si vous souhaitez cliquer, une boîte de dialogue apparaîtra. Utilisez simplement l'événement onclick pour appeler la méthode
Ce qui précède vous présente l'analyse et les solutions au problème des fenêtres de dialogue incompatibles apparaissant dans la méthode showModalDialog() de Google. J'espère que cela sera utile à tout le monde.