Javascript jQuery定位需要<;!DOCTYPE HTML>;

Javascript jQuery定位需要<;!DOCTYPE HTML>;,javascript,jquery,html,Javascript,Jquery,Html,我可以在jQuery中打开如下对话框: position: { of: $( "#Parent" ), my: "left top", at: "left top" } 这在FF中可以正常工作,但在IE9中,它仅在doctype设置为时工作,而不是像下面这样的另一种情况: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 似乎所有其他的doctype都将IE置于怪癖模式

我可以在jQuery中打开如下对话框:

position: {
    of: $( "#Parent" ), 
    my: "left top", 
    at: "left top"
}
这在FF中可以正常工作,但在IE9中,它仅在doctype设置为
时工作,而不是像下面这样的另一种情况:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

似乎所有其他的doctype都将IE置于怪癖模式

问题是使用
会弄乱ActiveWidgets;网格不会显示在任何浏览器中

我可以让jQuery定位在IE中不使用
的情况下工作吗?或者我可以让ActiveWidgets使用这个推荐的DOCTYPE吗


谢谢你的回答

在花了一天时间用jqwidgets替换activeWidgets网格之后,我终于不喜欢结果了。我使用PHP模板从ini文本文件生成动态网格

我最后把我的文档分成了两个iFrame。一个带有对话框,另一个带有网格

这样我就无法将对话框移到框架外,但它可以工作

这是一个很棒的社区,它帮助我设计了很多很棒的内部网站
谢谢

您可以在头部使用此meta标记强制MSIE升级到最新版本>:

<meta http-equiv="X-UA-Compatible" content="IE=edge" />

tldr;使用有效/可识别的DOCTYPE确保非怪癖模式

HTML4过渡DOCTYPE包括DTD URI:


根据维基百科文章
(不带系统标识符)中列出的模式矩阵,IE8+将进入怪癖模式。哎呀

(请注意,即使使用过渡系统标识符,它仍然处于几乎标准的模式!最好使用严格的DTD和/或HTML5 DOCTYPE,以便最新的浏览器将在标准模式下运行。)


在修复DOCTYPE以确保几乎符合标准/标准模式后,请参阅Quentin的评论以了解一些解决方案。

您是否已通过w3c validator运行页面以确保在某个地方没有损坏的标记?什么是
ActiveWidgets
?听起来您有一些依赖于标准模式的代码,而ActiveWidgets是依赖于怪癖模式的第三方库。您不能在同一文档中同时激活这两种模式,因此适当的操作是用合理设计的东西替换ActiveWidget,而不是不专业的混乱。(基于ActiveWidgets的描述-将其替换为YUI、jQuery UI或Dojo)