当前位置:  开发笔记 > 编程语言 > 正文

IE的jQuery UI对话问题

如何解决《IE的jQueryUI对话问题》经验,为你挑选了2个好方法。

我正在使用新的jQuery 1.3.2和jQuery-ui-1.7库以及UI对话框.我有一个div标签,里面有几个表单元素(文本框,复选框等).在页面加载时,jQuery将div显示为对话框.这在FF中工作得非常好,但在IE中,div的高度是错误的.它只是显示标题栏的一些内容.我在创建div时明确设置了高度.如果在打开对话框后设置高度选项,则会更正高度,但内容为空(显示文本框的前三分之一).如果我允许对话框可调整大小,如果你在IE中调整它的大小它工作正常,但我不想强迫IE用户调整大小只是为了看到内容.有任何想法吗?这是我用来创建对话框的代码:

$('#dialogDiv').dialog({ 
    bgiframe: true, 
    height: 400, 
    width: 620, 
    modal: true, 
    draggable: true, 
    resizable: false, 
    close: function(event, ui) {
        if($('#agree').val() != '1')
            location.href = 'somepage.html';
    }
});

Monte Chan.. 30

在做了一些Google搜索后,我找到了问题的真实答案.它是由不兼容的Doctype引起的.有关更多信息,请访问http://osdir.com/ml/jquery-ui/2009-08/msg00388.html.

我在我的代码上试了一下,这个URL中的解决方案可以解决问题.



1> Monte Chan..:

在做了一些Google搜索后,我找到了问题的真实答案.它是由不兼容的Doctype引起的.有关更多信息,请访问http://osdir.com/ml/jquery-ui/2009-08/msg00388.html.

我在我的代码上试了一下,这个URL中的解决方案可以解决问题.


这是问题的真正答案.我有同样的问题,包括DOCTYPE确实解决了jQuery的一些样式问题.
非常感谢你.这真的解决了这个问题.IE糟透了

2> juanitogan..:

我在IE7中遇到了同样的问题,并深入研究了症状和解决方案.我注意到当我创建一个没有内容的虚拟对话框时,高度正确呈现.因此,我开始玩各种类型的内容,看看我是否可以用不同的方式编写内容来克服这个问题.没运气.然而,我发现,我添加的内容越多,IE7中的对话框就越短(甚至隐藏的项目也会缩短一点).因此,简单的内容可能不会产生太大的影响(因此,在这个问题上缺乏更多的投诉).我正在添加的表和许多表单项创建了非常明显的效果.

将高度设置为auto可以很好地工作但是IE7仍然错误地计算了我的内容的高度大约10个像素太短(可能是对象上的填充高度),因此jQuery添加了滚动条.不完美,但接受以下内容可接受.

由于未能找到另一种解决方法,我开始研究DOCTYPE解决方案.我发现我们网站的DOCTYPE - 尽管它看起来是正确的 - 它实际上将所有浏览器都置于"Quirks模式"中,这是问题的真正来源.我怀疑jQuery支持怪癖模式问题所以我怀疑这将永远修复.

我目前的DOCTYPE:

应该是什么:

即使这个较旧的DOCTYPE工作:

因此,不是DOCTYPE必须是HTML 5的值,它必须是有效的DOCTYPE(HTML 4或5 - 不确定XHTML)才能将IE7设置为除quirks模式之外的其他东西(Firefox工作原理)好的,无论哪种方式).看到:

http://en.wikipedia.org/wiki/Quirks_mode#Comparison_of_document_types

我没有选择更改我们网站的DOCTYPE所以我必须使用其他解决方案,如自动高度.我注意到在使用jQuery Dialog时怪癖和标准模式之间还存在其他差异所以我也必须处理它们(即,在IE7和Firefox中,字体大小百分比的累积方式不同).

推荐阅读
linjiabin43
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有