在IE11中,站点无法正确显示

时间:2013-10-18 02:18:59

标签: asp.net internet-explorer-11

我的网站可以在IE7,IE8,IE9,IE10,所有PC和Mac版本的Firefox和Chrome,Opera和Safari中正确显示。但是,在IE11中,它显示了部分标题和javascript,但没有显示html。有什么想法吗?

http://www.ighome.com

1 个答案:

答案 0 :(得分:10)

IE11开发人员工具中的网络标签显示没有针对您的样式表的请求,并且您的<head>内容是内联呈现的。这表明IE11不认为内容是html(并且不会将其解析为)。您发送的html内容类型表明它是xml,但是带有html doctype。我会先尝试更改内容类型。

一般更改

  1. 您正在使用http-header Content-Type: application/xhtml+xml提供html4。它应该是text/html
  2. Html4没有自动关闭标签。
  3. 您的<style>遗漏了type属性。
  4. 您有内联样式。这是我与可维护性先生之间的个人问题。
  5. 某些输入元素缺少<label>。辅助功能!
  6. 您可以在内联元素中嵌套一些块元素。这更像是一个验证问题,我看过没有浏览器确实存在这个问题。
  7. <a href="..." />内缺少html编码。所有安培(&amp;)必须编码为(&amp; amp;)。你需要url-encoding where approperiate。
  8. width没有<div>属性。
  9. 特定错误

    1. 17-27行在<script>内有<style>
    2. 第196行有一个<input>,有两个value属性。
    3. Asp.net useragent shazaam

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

      Asp.net使用useragent检测来确定您的浏览器支持的内容。 useragent字符串与服务器上的浏览器配置文件匹配,这将填充Request.Browser对象。此信息确定您的<form runat="server">是否应呈现__doPostBack功能。 Internet Explorer 11是第一个未将自身标识为MSIE的Internet Explorer版本,并且先前的检测失败。您需要将配置文件添加到~/App_Browsers文件夹(如果缺少,则创建一个新文件夹)。此代码段将使用ecmascriptversion配置IE11,用于检测对回发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>