JSF2.0+;Primefaces 3.0.1+;jquery 1.6.4+;p:commandLink+;IE8抛出对方法或属性的意外调用
团队 我正在基于maven的jetty(8.0.1)上运行所描述的设置,并且在IE8中出现了一些奇怪的异常(仅限于!) IE给我的错误如下所示:JSF2.0+;Primefaces 3.0.1+;jquery 1.6.4+;p:commandLink+;IE8抛出对方法或属性的意外调用,jquery,html,jsf,internet-explorer-8,primefaces,Jquery,Html,Jsf,Internet Explorer 8,Primefaces,团队 我正在基于maven的jetty(8.0.1)上运行所描述的设置,并且在IE8中出现了一些奇怪的异常(仅限于!) IE给我的错误如下所示: Webpage error details User Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0) Timestamp: Wed, 29 Feb 2012 14:09:38 UTC Message: Unexpected call to method o
Webpage error details
User Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0)
Timestamp: Wed, 29 Feb 2012 14:09:38 UTC
Message: Unexpected call to method or property access.
Line: 23
Char: 22640
Code: 0
URI: http://127.0.0.1:8080/javax.faces.resource/jquery/jquery.js.jsf?ln=primefaces&v=3.0.1
第23行的“javax.faces.resource/jquery/jquery.js.jsf?ln=primefaces&v=3.0.1”中描述的代码段char 22640是“finally”后面的“{”:
resolveWith:function(bw,bv){
if(!bs&&!bu&&!br){
bv=bv||[];
br=1;
try{
while(bt[0]){
bt.shift().apply(bw,bv)
}
}finally{
bu=[bw,bv];
br=0
}
}
return this
}
在这里,JSF XHTML将重现此错误:
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:c="http://java.sun.com/jstl/core"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:p="http://primefaces.org/ui">
<f:view contentType="text/html">
<h:head>
</h:head>
<h:body>
<h:form>
<h:form>
<p:dialog id="testDialog" header="Test Dialog" modal="true"
widgetVar="testDialog" dynamic="true" resizable="true"
maximizable="true" showEffect="fade" hideEffect="explode">
<h:outputText value="Dialog!" />
</p:dialog>
<p:commandLink styleClass="button" oncomplete="testDialog.show()">
<h:outputText value="Click me!" />
</p:commandLink>
</h:form>
</h:form>
</h:body>
</f:view>
</html>
以下JSF XHTML没有抛出错误:
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:c="http://java.sun.com/jstl/core"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:p="http://primefaces.org/ui">
<f:view contentType="text/html">
<h:head>
</h:head>
<h:body>
<h:form>
<p:dialog id="testDialog" header="Test Dialog" modal="true"
widgetVar="testDialog" dynamic="true" resizable="true"
maximizable="true" showEffect="fade" hideEffect="explode">
<h:outputText value="Dialog!" />
</p:dialog>
<p:commandLink styleClass="button" oncomplete="testDialog.show()">
<h:outputText value="Click me!" />
</p:commandLink>
</h:form>
</h:body>
</f:view>
</html>
不同之处在于第一个示例中的嵌套表单。这是一个高度理想化的示例,但如果我嵌套组件和对话框,则反映了相同的行为。每当嵌套表单时,IE8.FF中就会出现上述错误,而其他人只是按预期打开对话框
If将避免嵌套表单,但这是不可能的,因为mojarra不允许我在不使用表单对其进行排序的情况下放置组件中包含的commandLink
CommandButton的行为与此相同。我已经阅读了与IE错误消息相关的其他几种方法和错误,但没有找到任何解决方案或有用的提示
以下是我感兴趣的内容:
a) 你能重现这种行为吗?
b) 您是否知道如何解决这个问题(可能以某种方式更新jquery)
首先,我试图验证我的HTML5,但即使是非HTML5和非常精简的html,也会发生这种情况
感谢您的任何帮助、提示或提前链接到任何信息
问候,
那个家伙
PS:如果你认为你知道些什么,请让我提供更多的细节或所需的资源,我很幸运也能在这里帮助其他人!嵌套表单在HTML中是非法的。浏览器行为未指定。从JSF的角度来看,你永远不应该嵌套
组件
至于你为什么需要嵌套表单
If将避免嵌套表单,但这是不可能的,因为mojarra不允许我在不使用表单对其进行排序的情况下放置组件中包含的commandLink
这不是真的。也许你把以下众所周知的警告看得太严重了
警告:表单组件的祖先中需要有UIForm。建议:将必要的组件包含在
这“只是”一个警告,而不是一个错误。如果您的页面工作正常,那么您可以忽略该警告。此警告仅在您将项目阶段设置为Development
时显示。将其设置为Production
时不会显示
然而,在早期的Mojarra版本中存在一个bug,当您将命令链接放入某个子/包含模板文件中,而表单放入主模板(因此位于物理上不同的文件中)时,也会出现此警告。升级Mojarra版本应修复此错误且令人困惑的警告
另见:
组件
至于你为什么需要嵌套表单
If将避免嵌套表单,但这是不可能的,因为mojarra不允许我在不使用表单对其进行排序的情况下放置组件中包含的commandLink
这不是真的。也许你把以下众所周知的警告看得太严重了
警告:表单组件的祖先中需要有UIForm。建议:将必要的组件包含在
这“只是”一个警告,而不是一个错误。如果您的页面工作正常,那么您可以忽略该警告。此警告仅在您将项目阶段设置为Development
时显示。将其设置为Production
时不会显示
然而,在早期的Mojarra版本中存在一个bug,当您将命令链接放入某个子/包含模板文件中,而表单放入主模板(因此位于物理上不同的文件中)时,也会出现此警告。升级Mojarra版本应修复此错误且令人困惑的警告
另见: