jquery ui对话框和我们最亲密的朋友,ie6

时间:2010-04-30 20:22:39

标签: jquery-ui internet-explorer-6 jquery-ui-dialog

我正在使用jquery ui对话框进行模态弹出对话框。它在Firefox / Chrome中运行良好但在ie6中很糟糕。

问题: 当我在ie6中显示对话框时,浏览器窗口会增长并自动向下滚动到底部。高度增加和自动向下滚动等于jquery对话框的高度。

我可以向上滚动然后正常使用对话框,但是窗口和窗口的增长行为令人抓狂。

以下是我启动窗口的方法:

<div id="dialogWindow"></div>

...

       $(document).ready(function() {
            var $dialog = $("#dialogWindow").dialog({
                autoOpen: false,
                modal: true,
                minWidth: 560,
                width: 560,
                resizable: "true",
                position: "top"
            });

            $('.addButton').click(function(e) {
                e.preventDefault();
                $('#dialogWindow').load('http://myurl');
                $dialog.dialog('open');
            });
        });

我已经在使用jquery的bgiframe插件,这是ie6覆盖问题的关键。但这似乎与此无关。有没有人见过这个,找到了解决方法?

2 个答案:

答案 0 :(得分:2)

我以前见过这种行为,通常是由叠加引起的。当您使用{modal:true}选项时,如果加载了插件,则会创建覆盖并使用bgiframe支持进行渲染。

首先,尝试转动{modal:false},看看你是否没有得到页面爆炸,然后我们知道它是叠加层。

有一些事情要检查是否是罪魁祸首;

  • 检查叠加层的样式是否正确加载,您需要包含jquery-ui dialog.css
  • 尝试使用position:和float:styles
  • 进行试验
  • 尝试将对话框标记移到&lt; / body&gt;标记,允许模态叠加正确转义。

答案 1 :(得分:0)

我有一个类似的问题。

$('.addButton').click(function(e) {
    e.preventDefault();
    $('#dialogWindow').load('http://myurl');
    var y = window.pageYOffset;
    var x = window.pageXOffset
    $dialog.dialog('open');
    window.scrollTo(x, y); // horizontal and vertical scroll targets
});

上面应该做的是获取当前的滚动坐标并保存它们。对话框打开后,然后滚动回内存中的先前位置。应该是即时的,用户看不见。