0

我的 web 应用程序在新版本(37 及更高版本)启动后崩溃Chrome,因为 chrome 已经停止支持。showmodaldialog但是我需要在我的 web 应用程序中实现相同的功能。

我需要一些return value与弹出窗口相同的showmodaldialog内容。我分别设计了所有弹出窗口页面并从父页面调用它们。

4

3 回答 3

0

Chrome 开始支持 <dialog> 元素。看一下这个。http://demo.agektmr.com/dialog/

Polyfill 也可用。 https://github.com/GoogleChrome/dialog-polyfill

于 2014-09-17T05:53:44.627 回答
0

在做了很多谷歌搜索之后,我找到了该问题的解决方案。我Jquery dialog在版本中使用存在jquery-1.9.1。下面给出的实现:

在父页面的标签上添加jqueryhead

<link type="text/css" rel="stylesheet" href="https://code.jquery.com/ui/1.10.1/themes/base/jquery-ui.css" />
<script type="text/javascript" src="https://code.jquery.com/jquery-1.9.1.js"></script>
<script type="text/javascript" src="https://code.jquery.com/ui/1.10.1/jquery-ui.js"></script>

编写弹出窗口打开功能,我在其中创建一个div和内部这样的div拍摄iframe

<script type="text/javascript" language="javascript">
 function Open() {

        var href = "../../PopUps/FindEmployee.aspx?Page=EC";
        var obj = $('<div id="divClose"></div>');

        obj.html('<iframe id="popUpFrame" style="border: 0px; " src="' + href + '" width="100%" height="99%"></iframe>');
        obj.dialog({
            autoOpen: false,
            resizable: false,
            height: 500,
            width: 650,
            modal: true,
            title: "Find Employee",
            dialogClass: 'infoDialogHeader infoDialogTitle'
        });
        obj.dialog('open');
        return false;
    }
 function closeIframe() {
        $('#divClose').dialog('destroy');
    }


</script>

现在我正在处理FindEmployee.aspx像这样的子页面:

<script type="text/javascript" language="javascript">

    $(document).ready(function () {

        $("[id^=BtnReturnParentPage]").click(function (e) {
            var movedElement;

            if ($("#hdnInformationType").val() == "EC") { // condition for Employee Code                   
                movedElement = window.parent.$("[id*='txtECode']");
                // cleaning textbox
                movedElement.val('');
                movedElement.val($(this).parent().parent().find("[id^=gvEmployeeDetails_gvlblEmployeeCode]").text()); // assing relating information
            }

   window.parent.closeIframe();

        });

</script>

在上面的子页面代码中,我获取$("[id*='txtECode']") textbox了父页面上存在的值,并将子页面员工代码值分配给父页面textbox

所以我们需要在父页面上创建一个textbox名称为的元素,txtECode以便分配子页面的值。

希望对所有正在苦苦挣扎的人有所帮助window.showmodeldialog

于 2014-10-08T06:22:23.177 回答
0

一个更简单的解决方案是:您可以在window.opener.client_function旁边使用window.open而不是window.showmodaldialog

在 Peter A. Bromberg 的这篇文章中,很好地解释了:ASP.NET Popup Windows With Return Values Redux

“更少的代码,相同的操作”

于 2017-01-24T14:24:49.120 回答