Jquery IE问题

时间:2011-04-27 09:59:24

标签: javascript jquery html internet-explorer meta-tags

我有一个用Java编写的应用程序和一个基本上用javascript编写的webapp关联。我在IE7上运行并没有任何问题。但最近,我升级到IE8,从那时起我遇到了很多问题...... 无论我使用哪种版本的jquery,它都会崩溃。我没有任何javascript错误消息,但CSS和其他方法没有被使用... 我在StackOverflow上找到了一个有类似问题的人,他将这个添加到他的标题中:<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" /> 确实,它适用于我,但我不知道我的页面上有什么变化。这个元只改变了对CSS的解释吗? Javascript?

感谢您的回答

3 个答案:

答案 0 :(得分:0)

X-UA-Compatible是微软为网站制作IE切换渲染模式的答案。公司升级其IE安装的主要问题是与在旧版IE上运行而构建的Web应用程序的兼容性。这个元标志用于告诉IE的新版本如何处理当前文档。

在您的示例中,X-UA-Compatible值告诉IE模拟IE7渲染。如果用户使用IE8访问了您的站点,它将看到此标志并切换到IE7兼容模式并模仿其功能。您可以在MSDN上的Defining Document Compatibility了解更多相关信息。

但是,如果你的JS在浏览器中破解,那么你应该修复它而不是依赖这种廉价的黑客攻击(在我看来)。虽然对快速修补问题非常有用,但您无法保证它始终有效,并且您可能会遇到其他浏览器中无法理解IE专有的X-UA-Compatible的问题。

如果你很难在源头解决问题,也许你可以在这里发布一个新问题供SO用户查看。

答案 1 :(得分:0)

你刚刚添加的meta告诉IE使用IE7的javascript和渲染引擎,即使它是浏览器的新版本。 MS实现了这样的头,以避免破坏依赖于该版本的特定行为的站点。正如Evert所提到的,它很可能是你的代码中的一个错误,但是如果有更多的信息很难说是什么来源。我会打开IE的调试器(F12)并尝试进入“崩溃”的行。

如果CSS也失败(未加载),请检查用于链接到CSS / JS文件的路由。在路径中使用'\'而不是'/'之类的东西可能在IE6 / 7中有效,但在较新的版本中却没有(因为它们更加严格),并且未转义的字符也会发生同样的情况。另外,请检查您的应用是否正在使用正确的内容/类型提供文件。

答案 2 :(得分:0)

当IE看到X-UA-Compatible元标记时,它会使用它来确定页面的呈现模式。

IE8具有内置的向后兼容模式,允许它回退到以IE7模式呈现页面。这个元标记是IE使用它来告诉它使用这种模式。

这个想法是,如果您的页面在IE7中工作但在IE8中没有,那么添加此标记将允许您的页面在用户升级时继续工作。

一般情况下,这是正确的,但值得指出的是,IE8中的IE7模式与真正的IE7浏览器并不完全相同:它有一些自己的怪癖和错误,不会出现在IE7中。

除了在元标记中指定渲染模式外,还可以在浏览器中指定它。在IE8中,如果按F12以获取开发人员工具窗口,则可以从此处更改渲染模式。这允许您查看网站使用的模式。它还允许您测试更改模式是否有帮助,而无需实际添加元标记。 IE8还有一个配置设置,可以为Intranet站点指定默认为IE7模式,同样不需要元标记。

然而,毕竟,我还会说兼容模式​​可能不是解决问题的最佳方法。您声明应用程序崩溃了。你还没有真正描述崩溃的细节,我在这里诊断它,但你确实提到了JQuery。关于JQuery的一点是明确设计为适用于所有浏览器的所有版本;我很想知道这里到底出了什么问题,但我怀疑JQuery本身是错的。

请提供有关您的错误的更多信息,也许我们能够帮助您(我建议为此开始一个新的问题,因为该主题将与此完全不同)。