Chrome 37已经停止了showmodaldialog支持。用什么代替呢?

时间:2014-09-17 05:32:02

标签: javascript jquery google-chrome showmodaldialog

我的网络应用程序在Chrome新版本(37及更高版本)推出后崩溃,因为chrome已停止showmodaldialog的支持。但我需要在我的网络应用程序中实现相同的功能。< / p>

我需要弹出窗口return valueshowmodaldialog相同。我已经分别设计了所有弹出窗口,并从父页面调用它们。

3 个答案:

答案 0 :(得分:0)

Chrome开始支持&lt;对话框&gt;元件。 看一下这个。 http://demo.agektmr.com/dialog/

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

答案 1 :(得分:0)

在进行了大量的Google搜索后,我找到了该问题的解决方案。我在Jquery dialog版本中使用了jquery-1.9.1。实现如下:

在父页面的jquery标记上添加head

<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的{​​{1}}元素,以便分配子页面的值。

希望它可以帮助所有与txtECode

挣扎的人

答案 2 :(得分:0)

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

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

&#34;代码少,操作相同&#34;