弹出窗口在更新浏览器后自动关闭(IE11,chrome(最新版本)

时间:2016-03-09 12:12:22

标签: javascript jquery

您好我正在处理一个应用程序,在我将浏览器更新到最新版本后发生错误。例如,如果我使用的是IE 10,那么错误就不会发生,因为IE 11没有出现错误/错误。我将尽可能准确地尝试错误。如果你不能跟我,你可以问我明确的问题。 这个bug是由javascript生成的。

主要说明:我有一个按钮,如果点击它,弹出的fenster会用JQuery动态打开:

jQuery(html.join('')).dialog(
            {
                modal : true,
                width : 650,
                height : 500,
                autoOpen : true,
                closeOnEscape : true,
                draggable : true,
                resizable : false,
                buttons : [
                /*
                 * { text: alerts_GetMessageText(ghAlertsDetailsMessages,
                 * 'Alerts.AlertDetails.Reason.Dialog.Cancel') ,click:
                 * function() { jQuery( this ).dialog( "close" ); }
                 * ,classes: 'ButtonDialogLeft' },
                 */
                {
                    text : alerts_GetMessageText(ghAlertsDetailsMessages,
                            'Alerts.AlertDetails.Reason.Dialog.OK'),
                    click : alerts_Details_CloseReasonDialog,
                    classes : 'ButtonDialogRight'
                } ]
            });

错误是弹出窗口在显示后立即关闭。我想原因是电流被重定向到同一个当前页面。所以我在关闭弹出窗口的同一页面上着陆。

我知道解释这一点并不容易,但令我感到恼火的是,控制台中没有显示任何错误。

通过调用:

填充弹出窗口
goMyAlertsCommandQueue.addAjaxCall({
        type : "GET",
        url : './showAlertsAlertReasonAjax.do',
        dataType : "html",
        data : ({
            AjaxAction : 'data',
            AlertId : alertId
        })
    }, alerts_Details_OpenReasonDialogReady);
    goMyAlertsCommandQueue.run();

alerts_Details_OpenReasonDialogReady看起来像是:

function alerts_Details_OpenReasonDialogReady(poHtml) {
// Button ausrichten
/*
 * jQuery("button[classes='ButtonDialogLeft']",
 * jQuery(this).parent()).css("float","left");
 */
jQuery("button[classes='ButtonDialogRight']", jQuery(this).parent()).css(
        "float", "right");

// show dialog data
jQuery("#ReasonDialog div").remove();
jQuery("#ReasonDialog").append(poHtml);

// 'Close'-Button ausblenden
jQuery(".ui-dialog-titlebar-close").show();

dropdownList();
firstTime = false;

}

一段时间后这个函数jquery-ui:

_delay: function( handler, delay ) {
    function handlerProxy() {
        return ( typeof handler === "string" ? instance[ handler ] : handler )
            .apply( instance, arguments );
    }
    var instance = this;
    return setTimeout( handlerProxy, delay || 0 );
},

返回后(typeof handler ===“string”?instance [handler]:handler)                 .apply(实例,参数);正在执行,页面被重定向到当前页面,弹出窗口正在消失。控制台中未显示任何错误。所以我无法识别导致错误的原因。如果您有任何疑问,请询问,我很感激您的帮助。

编辑:@halcyon

function alerts_Details_OpenReasonDialog() {
var alertId = jQuery(this).attr("alertId");

if (firstTime) {
    // 
    //jQuery("#ReasonDialog").dialog('destroy');
    jQuery("#ReasonDialog").remove();

    var html = [];
    var i = -1;

    html[++i] = "<div class='cReasonDialog' id='ReasonDialog' title='"
            + alerts_GetMessageText(ghAlertsDetailsMessages,
                    'Alerts.AlertDetails.Reason.Dialog.Title') + "'>";
    html[++i] = "<div style='margin-top:50px; text-align:center;'>"
            + alerts_GetMessageText(ghAlertsDetailsMessages,
                    'Alerts.AlertDetails.Reason.Dialog.LoadingData')
            + "</div>";
    html[++i] = "<div style='margin-top:25px; text-align:center;'><img src='./reportingErgon/img/icon_loading.gif' alt='"
            + alerts_GetMessageText(ghAlertsDetailsMessages,
                    'Alerts.AlertDetails.Reason.Dialog.LoadingData')
            + "' /></div>";
    html[++i] = "</div>";
    jQuery(html.join('')).dialog(
            {
                modal : true,
                width : 650,
                height : 500,
                autoOpen : true,
                closeOnEscape : true,
                draggable : true,
                resizable : false,
                buttons : [
                /*
                 * { text: alerts_GetMessageText(ghAlertsDetailsMessages,
                 * 'Alerts.AlertDetails.Reason.Dialog.Cancel') ,click:
                 * function() { jQuery( this ).dialog( "close" ); }
                 * ,classes: 'ButtonDialogLeft' },
                 */
                {
                    text : alerts_GetMessageText(ghAlertsDetailsMessages,
                            'Alerts.AlertDetails.Reason.Dialog.OK'),
                    click : alerts_Details_CloseReasonDialog,
                    classes : 'ButtonDialogRight'
                } ]
            });

    goMyAlertsCommandQueue.reset();
    goMyAlertsCommandQueue.addAjaxCall({
        type : "GET",
        url : './showAlertsAlertReasonAjax.do',
        dataType : "html",
        data : ({
            AjaxAction : 'data',
            AlertId : alertId
        })
    }, alerts_Details_OpenReasonDialogReady);
    goMyAlertsCommandQueue.run();
    firstTime = false;
} else {
    jQuery("#dropdown1 input").val("");
    jQuery("#FilterText").val("");
    jQuery("#FilterValue").val("");
    jQuery("input[name=Rating]:checked").attr("checked", false);
    jQuery(".cErrorMessage").text("");
    jQuery("#ReasonDialog").dialog('open');
}

}

0 个答案:

没有答案