1

JQueryUIダイアログを使用しています。このフォームでは、何かを検証します。この関数を呼び出します。

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

Chromeでは、Firefox、IE8、IE9; 正しく動作しますが、IE7では、ダイアログのヘッダーのみがこのように表示されます。[OK]ボタンをクリックすると、ヘッダーのみが表示されます ここに画像の説明を入力してください これを解決するにはどうすればよいですか?

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");
        });
    }
4

1 に答える 1

1

周りを見回すと、IE7のダイアログボックスの高さにかなりの問題があるようです。

高さを指定してみることができますが、それでは、得られる優れた自動高さ機能が失われます。

または、「dlg」変数を設定した直後のブラウザの高さをIE7に設定することもできます。

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

「100」を自分の考えに置き換えることができます。ダイアログボックスにコンテナ要素がある場合は、いつでもそれを使用して高さを設定できます。例:

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

StackOverflowに関するその他の提案もあります。

お役に立てば幸いです。

于 2012-04-16T12:08:51.143 に答える