4

我有一个网站可以在 IE7、IE8、IE9、IE10、Firefox 和 Chrome、Opera 和 Safari 的所有 PC 和 Mac 版本中正确显示。但是,在 IE11 中,它显示部分标头和 javascript,但不显示 html。有任何想法吗?

http://www.ighome.com

4

1 回答 1

10

IE11 Developer Tools 中的 Network-tab 显示没有对您的样式表的请求,并且您的<head>内容是内联呈现的。这表明 IE11 不会将内容视为 html(并且不会对其进行解析)。您正在发送带有内容类型的 html,表明它是 xml,但带有 html 文档类型。我会先尝试更改内容类型。

一般变化

  1. 您正在使用 http-header 提供 html4 Content-Type: application/xhtml+xml。应该是text/html
  2. Html4 没有自闭合标签。
  3. <style>缺少该type属性。
  4. 你有内联样式。这是我和可维护性先生之间的个人问题。
  5. 某些输入元素缺少<label>. 可访问性!
  6. 您将一些块元素嵌套在内联元素中。这更像是一个验证问题,我没有看到实际上有这个问题的浏览器。
  7. 中缺少 html 编码<a href="..." />。所有与号 (&) 必须编码为 (&)。您需要适当的 url 编码。
  8. 没有width属性<div>

具体错误

  1. 第 17-27 行有<script>一个<style>.
  2. 第 196 行有 a<input>和两个value属性。

Asp.net 用户代理 shazaam

我正在使用我的高级超级英雄技能来检测您正在使用 ASP.NET。(或者至少有一个隐藏__VIEWSTATE field 一个ASP.NET_SessionIdcookie。)您需要添加一个浏览器配置文件才能使 asp.net javascript 工作。

Asp.net 使用用户代理检测来确定您的浏览器支持什么。用户代理字符串与服务器上的浏览器配置文件匹配,并填充Request.Browser对象。此信息确定您<form runat="server">是否应该呈现 __doPostBack 函数。Internet Explorer 11 是第一个不将自己标识为 MSIE 的 Internet Explorer 版本,之前的检测失败。您需要将配置文件添加到您的~/App_Browsers文件夹(如果缺少,请创建一个新文件)。此代码段将配置 IE11ecmascriptversion用于检测对回发 javascript 的支持(除其他外)。

<browsers>
    <!-- Mozilla/5.0 (Windows NT 6.3; Trident/7.0; rv:11.0) like Gecko -->
    <browser id="IE11" parentID="Mozilla">
        <identification>
            <userAgent match="Trident/(?'layoutVersion'\d+\.\d+)" />
        </identification>

        <capture>
            <userAgent match="rv:(?'version'(?'major'\d+)(\.(?'minor'\d+)?))" />
        </capture>

        <capabilities>
            <capability name="browser"                 value="IE" />
            <capability name="ecmascriptversion"       value="3.0" />
            <capability name="layoutEngine"            value="Trident" />
            <capability name="layoutEngineVersion"     value="${layoutVersion}" />
            <capability name="majorversion"            value="${major}" />
            <capability name="minorversion"            value="${minor}" />
            <capability name="type"                    value="IE${major}" />
            <capability name="version"                 value="${version}" />

            <capability name="preferredRenderingMime"  value="text/html" />
        </capabilities>
    </browser>
</browsers>
于 2013-10-18T02:51:42.953 回答