1

我想对于更熟悉 IE 浏览器模式的人来说,这可能是一个快速而简单的问题。

我们有一个 Intranet 应用程序窗口,有时会根据开发工具切换到“文档模式:IE7 标准”(w/浏览器模式:IE9)——实际上很少见,因此很难准确判断导致问题的原因。结果是表单字段都乱七八糟,CSS/floats歪斜,脚本不能正常工作等等。一旦出现问题,解决它的唯一方法就是完全关闭浏览器并重新启动Internet Explorer。

我们终于在他们遇到故障时找到了一个用户,打开了开发工具,并确认文档模式已将自身设置为 IE7 并将其更改回 IE9 修复了所有问题。但是,一旦将其设置为 IE7,将其默认恢复为 IE9 的唯一方法就是关闭浏览器。否则,如果您只是关闭窗口而不是整个浏览器,则每次打开窗口都会返回 IE7。

我不知道是什么原因导致这个问题如此断断续续。我认为这可能与Doctype有关?任何人都可以提供任何建议吗?

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="AppScreen.aspx.cs" Inherits="Project.AppScreen" %>
<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="asp" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <link href="~/Styles/AppScreen.css" rel="Stylesheet" type="text/css" />
    <script src="Scripts/jquery-1.4.1.js" type="text/javascript"></script>
    <title>Title</title>

    <script type="text/javascript">
    //A couple other quickie scripts
    </script>
</head>
4

2 回答 2

2

你说你想找出问题的根源,所以这里是:

IE 有一个配置设置,指定对本地 Intranet 上的站点使用兼容模式。此配置设置默认为开启。

此设置的目的是帮助正在升级其 IE 版本但不想升级其 Intranet 软件的企业。

问题当然是许多 Intranet 不属于这一类。您希望 IE 即使在您的 Intranet 上也能使用其最佳模式。但是该设置必须以一种或另一种方式默认设置,而微软选择将其默认设置为开启。

因此,您的解决方案是在您的 Intranet 上绕过 PC 并关闭设置。(一些用户可能已经自己关闭了它,或者通过他们的安装设置了它,这可以解释为什么它不会发生在每个人身上)。

或者,您可以放置​​元标记以强制 IE 使用您的首选模式:

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

在这里,IE=edge告诉 IE 使用其最佳可用模式,而不是将其固定到特定的 IE 版本。

老实说,无论如何,最好将此元标记放入您的代码中,以避免与可能以某种方式将 IE 设置为错误模式的剩余用户产生任何随机问题。

X-UA-Compatible如果您不希望它弄乱您的 HTML 代码,您还可以将标志指定为 http 标头。

最后,稍微偏离主题,但值得注意的是,“本地 Intranet”的定义还包括在您自己的 PC 上运行的任何站点。这意味着此设置通常会吸引在 localhost 上工作但不了解该设置的新手 Web 开发人员。

于 2013-05-16T20:40:07.897 回答
1

尝试将其放在您的<head>标签中:

<meta http-equiv="X-UA-Compatible" content="IE=9"/>
于 2013-05-14T17:47:10.093 回答