5

我可以在 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">

似乎所有其他文档类型都将 IE 置于怪癖模式。

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

我可以在没有<!DOCTYPE HTML>IE 的情况下使用 jQuery 定位吗?或者我可以让 ActiveWidgets 使用这个推荐的 DOCTYPE 吗?


感谢您的回答

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

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

这样我不能将对话框移到框架外,但它可以工作

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

4

2 回答 2

2

tldr; 使用有效/公认的DOCTYPE 来确保非 Quirks 模式

W3C 信息参考中列出 的 HTML4 过渡 DOCTYPE包括DTD URI:

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

根据Quirks 模式维基百科文章中的模式矩阵列表<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">(没有系统标识符) ,IE8+进入 Quirks 模式。哎呀。

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

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

于 2012-11-25T00:51:30.470 回答
0

您可以使用头中的此元标记将 MSIE 强制为可用的最新版本>:

<meta http-equiv="X-UA-Compatible" content="IE=edge" />
于 2012-11-25T00:29:35.037 回答