我需要让我的应用程序在IE9文档标准下运行,但我无法弄清为什么它自动渲染为IE8文档标准。
我正在使用JSF 2.1.17和Primefaces 3.4,在Glassfish 3.1.2中运行。我的IDE是Netbeans-7.1.2。当我在IE中打开开发人员工具,在“HTML”选项卡下显示:
然而,在“脚本”选项卡下,它显示:
其他页面有:
我正在使用JSF 2.1.17和Primefaces 3.4,在Glassfish 3.1.2中运行。我的IDE是Netbeans-7.1.2。当我在IE中打开开发人员工具,在“HTML”选项卡下显示:
<--!DOCTYPE html-->
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
然而,在“脚本”选项卡下,它显示:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML lang=en xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<HEAD>
<META content="IE=8.0000" http-equiv="X-UA-Compatible">
我已经查看了所有的页面和模板,但是没有任何地方可以找到上面显示的meta content="IE=8.0000"或!DOCTYPE。这很奇怪。
我的所有页面都有:
<!DOCTYPE html>
我的主模板有这个:
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:p="http://primefaces.org/ui"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core">
其他页面有:
<!DOCTYPE html>
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:p="http://primefaces.org/ui"
template="/layout/someFile.xhtml" >
以下是我尝试过的方法:
1)将Glassfish JSF更新至2.1.17版本,因为我在阅读资料时发现旧版Mojarra存在一个bug,导致它忽略了DOCTYPE。
2)我添加了:
<meta http-equiv="X-UA-Compatible" content="IE=9" >
我尝试在每个页面中添加代码,希望可以强制IE9浏览器使用,但是这并没有起作用。
3) 我接着尝试使用content="IE=Edge"的代码,但是还是没有改变。
4) 我改变了DOCTYPE为:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
我不确定XHTML需要这个严格的DOCTYPE才能正确渲染。但这并没有起作用。
任何帮助都将是极好的。我已经做了很多研究,试图解决这个问题,但我是一个新手,所以我的理解非常有限。