IE7,JQuery UI对话框

时间:2012-04-16 11:54:33

标签: javascript jquery asp.net jquery-ui

我正在使用JQuery UI Dialog。在这种形式中,我验证了一些东西。我称之为函数;

MessageBox('this is message', 'Error', OpenDialog());

在Chrome,Firefox,IE8,IE9中;它工作正常,但在IE7中,只有对话框的标题显示如下。当我点击“Okey”按钮时,它只显示标题 enter image description here 怎么解决这个问题?

MessageBox功能

function MessageBox(text, title,Func) {

var dv = document.createElement('div');

$(function () {

    dv.id = 'Dialog';
    dv.innerHTML = '<table style="font-family:Calibri;"><tr><td>' + text + '</td></tr></table>';       
    document.forms[0].appendChild(dv);
    var dlg = $('#Dialog').dialog({
        autoOpen: false,
        width: 400,
        title: title,
        modal: true,
        resizable: false,

        buttons: [
        {
            text: "Okey",
            width: 80,
            click: function () {
                DialogClose_('Dialog');

            }
        }],
        open: function () {
            $('.ui-dialog-buttonpane').find('button:contains("Okey")').addClass('ButtonDefault');
        },

        close: Func,
        beforeClose: function () {
            var dv2 = document.getElementById("Dialog");
            dv2.parentNode.removeChild(dv2);
        }
    });
    dlg.parent().appendTo(jQuery('form:first'));
    $('#Dialog').dialog("option", "minWidth", 400);
    $('#Dialog').dialog('option', 'position', 'center');
    $('#Dialog').dialog('open');
});
return;

}

像这样的

OpenDialog函数;

 function OpenDialog() {
        $(document).ready(function () {
            $("#dialog").dialog("open");
        });
    }

1 个答案:

答案 0 :(得分:1)

浏览IE7中的对话框高度似乎存在很多问题。

你可以尝试指定一个高度,但这会夺走你得到的漂亮的自动高度功能。

或者你可以在你将“dlg”变量设置为IE7之后设置浏览器的高度:

if ($.browser.msie && parseInt($.browser.version, 10) == 7) {
    $('#Dialog').dialog("option", "height", 100);
}

您可以将“100”替换为您的想法。如果对话框中有容器元素,则可以始终使用它来设置高度,例如:

$("#container").height();

StackOverflow还有更多建议。

希望有所帮助。