我的网站可以在IE7,IE8,IE9,IE10,所有PC和Mac版本的Firefox和Chrome,Opera和Safari中正确显示。但是,在IE11中,它显示了部分标题和javascript,但没有显示html。有什么想法吗?
答案 0 :(得分:10)
IE11开发人员工具中的网络标签显示没有针对您的样式表的请求,并且您的<head>
内容是内联呈现的。这表明IE11不认为内容是html(并且不会将其解析为)。您发送的html内容类型表明它是xml,但是带有html doctype。我会先尝试更改内容类型。
Content-Type: application/xhtml+xml
提供html4。它应该是text/html
。<style>
遗漏了type
属性。<label>
。辅助功能!<a href="..." />
内缺少html编码。所有安培(&amp;)必须编码为(&amp; amp;)。你还需要url-encoding where approperiate。width
没有<div>
属性。<script>
内有<style>
。<input>
,有两个value
属性。我正在使用我的高级超级英雄技能来检测您正在使用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>