테스트에서 showModalDialog는 IE와 Firefox에서 정상적으로 실행되지만 Google에서는 클릭 후 응답이 없습니다. 온라인에서 찾아보니 Google Chrome이 showModalDialog 모달 대화 상자를 지원하지 않고 returnValue를 반환할 수 없다는 것을 알았습니다. 해결책
<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>
마지막으로 클릭을 하면 대화 상자가 나타납니다. onclick 이벤트를 사용하여 메소드를 호출하면 됩니다.
위에서는 Google의 showModalDialog() 메서드에 나타나는 호환되지 않는 대화 상자 문제에 대한 분석 및 해결 방법을 소개했습니다.