jQuery定位需要

时间:2012-11-24 22:12:50

标签: javascript jquery html5

我可以在jQuery中打开这样的对话框:

position: {
    of: $( "#Parent" ), 
    my: "left top", 
    at: "left top"
}

这在FF中运行良好,但在IE9中,只有当doctype设置为<!DOCTYPE HTML>时才有效,而不是像以下那样:

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

似乎所有其他doctypes都将IE置于怪癖模式。

问题是使用<!DOCTYPE HTML>搞砸了ActiveWidgets;网格不会在任何浏览器中显示。

我可以在IE中使用jQuery定位而不使用<!DOCTYPE HTML>吗?或者我可以使用推荐的DOCTYPE使ActiveWidgets工作吗?


感谢您的回答

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

我最终将我的文档分成2个iframe。一个是对话框,另一个是网格

这样我就无法在框架外移动对话框,但它可以正常工作

这是一个伟大的社区,帮助我设计了很多伟大的Intranet网站 谢谢

2 个答案:

答案 0 :(得分:2)

<强> tldr;使用有效/已识别的 DOCTYPE来确保非怪癖模式

HTML4过渡DOCTYPE listed in the W3C informational reference 包含 DTD URI:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">

根据Quirks mode维基百科文章<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">中的模式矩阵列表(没有系统标识符)将IE8 +置于Quirks模式。糟糕。

(请注意,即使使用过渡系统标识符,它仍处于 Almost-standards 模式!最好使用严格的DTD和/或HTML5 DOCTYPE,以便最近的浏览器能够运行标准模式。)

请参阅Quentin对某些解决方案的评论 - 修复DOCTYPE以确保几乎标准/标准模式后。

答案 1 :(得分:0)

您可以使用头部&gt;内的元标记强制使用MSIE到最新版本:

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