Pra*_*ngh 3 javascript browser asp.net
我在IE 10中遇到了一个奇怪的问题.许多jQuery脚本在IE 8,9,Chrome,firefox和safari上工作正常但在IE 10上坏了.只有当一些用户切换到IE 10时才会出现问题.
我发现添加的最简单的解决方案
<meta http-equiv="X-UA-Compatible" content="IE=9" />
Run Code Online (Sandbox Code Playgroud)
在<head></head>.
问题是网站有很多页面,大多数页面没有继承的母版页.那么有没有办法通过javascript添加这个,因为我们在所有网页中都有一个共同的引用js.
Spu*_*ley 13
不,没有办法在Javascript中这样做.至少,不是以实际可以实现的方式 - 在加载页面时渲染模式是固定的,所以你无法在页面内从JS中更改它.
另一种解决方案是将X-UA-Compatible标志添加为HTTP标头.这将在您网站的所有网页上设置它,而无需任何HTML更改.
您已经提到过您正在使用IIS.此页面应该可以帮助您为您的站点配置它.
但是,真正的解决方案始终是修复网站,使其在IE10中运行.这可能是最适合您的解决方案,因为IE10实际上非常擅长符合标准; 如果你有一些可以在IE8和IE9中运行的东西而不是IE10,那么它几乎可以肯定你的页面实际上有问题而不是IE10中的任何错误.
这反过来意味着即使它今天在其他浏览器中有效,您的代码中也可能存在一个错误,可能会在其他浏览器的未来版本中出现问题.
使用IE的兼容模式的另一个问题是,它确实不是它应该兼容的旧IE版本的准确副本.IE10的兼容模式尤其如此,因为有些旧功能已完全从IE10中删除,因此在兼容模式下也无法使用.这意味着IE8和IE9可能会工作,但IE9-compat模式下的IE10可能无法正常工作.这取决于实际问题,但你需要在compat模式下像在真实的IE10模式下一样彻底地测试它.
然后就是如何处理未来的网站问题.IE11及更高版本怎么样?Compat模式删除IE可能具有的新功能,因此通过坚持使用IE9模式,您将无法使用文本阴影或CSS过渡等功能.您最终会想要使用这些功能,因此您需要在某个时候修复该网站; 为什么不是现在?
感谢大家的回复和帮助.我在寻找的是在web.config中添加以下代码:
<httpProtocol>
<customHeaders>
<clear/>
<!--This setting will make document mode to highest mode available we need have mode 8 and above-->
<add name="X-UA-Compatible" value="IE=IE9"/>
</customHeaders>
</httpProtocol>
Run Code Online (Sandbox Code Playgroud)
在 <system.webServer>部分.
| 归档时间: |
|
| 查看次数: |
40572 次 |
| 最近记录: |