firefox 11和richfaces 3.1.5.GA/jsf 1.1.11 html注入
因此,我们有一个jsf/myfaces+rf应用程序,可以很好地与FF 10配合使用。但是FF 11本周发布了,我们看到了a4j标签的html注入问题。如果我们有一个简单的facelet页面,并且只添加一个a4j组件,firefox 11将呈现两个头部和身体标签(一对头部和身体标签是空的,并且它们以某种随机顺序呈现,有时空的身体标签在页面内容之后,有时在之前)。firefox 11和richfaces 3.1.5.GA/jsf 1.1.11 html注入,firefox,jsf,richfaces,ajax4jsf,myfaces,Firefox,Jsf,Richfaces,Ajax4jsf,Myfaces,因此,我们有一个jsf/myfaces+rf应用程序,可以很好地与FF 10配合使用。但是FF 11本周发布了,我们看到了a4j标签的html注入问题。如果我们有一个简单的facelet页面,并且只添加一个a4j组件,firefox 11将呈现两个头部和身体标签(一对头部和身体标签是空的,并且它们以某种随机顺序呈现,有时空的身体标签在页面内容之后,有时在之前)。 这就在客户端抛开了很多复杂的css和jquery逻辑(我们有一个css/js开发人员,他正在使用一些黑客的方法来解决这个问题,但这并不
这就在客户端抛开了很多复杂的css和jquery逻辑(我们有一个css/js开发人员,他正在使用一些黑客的方法来解决这个问题,但这并不理想)。是否有其他人看到了这一点或有任何解决办法的想法,以便a4j标签不会自动注入额外的头部/身体标签
我听说jsf2/richfaces 4没有这个问题,但是升级需要花费大量的时间和精力,所以我想看看是否还有其他的选择(我想也是为了证实,如果我们最终必须升级的话,rf4在FF 11中确实没有这个问题)。谢谢。似乎是一个FF错误:Ajax响应还可以,但是在html注入之后,a4j:mediaOutput的资源键被修改了(看起来像是URL编码的)。因此,资源查找失败。 按F5键后,将请求整个页面,并且URL有效。
我想说的是:我认为您的代码还可以,我们都必须等待FF12。似乎FF开始支持“outerHtml”DOM属性,所以“A4J.AJAX.\u scriptEvaluated”代码是使用回退IE目标代码插入的,而不是针对现代浏览器的代码 Jean Blanchard解释了如何修复它 要修复它,您必须从richfaces-impl.jar更新文件/org/ajax4jsf/javascript/scripts/AJAX.js。 不幸的是,我没有访问该库的权限,因此我正在使用以下难看的解决方法:
--[如果--
// 1) {
对于(变量i=0;i
!-- ![完]--
从FF11开始,我们也遇到了问题,在尝试了很多东西之后,这个线程解决了我们所有的问题:
我会向RichFaces的家伙们报告。有人能推荐一下:/org/ajax4jsf/javascript/scripts/AJAX.js所需的补丁吗??
<!--[if !IE]> -->
<script type="text/javascript">
// <![CDATA[
function fixA4J() {
var bodies = document.getElementsByTagName("body");
if (bodies.length > 1) {
for (var i = 0; i < bodies.length; i++) {
if (bodies[i].firstChild == null) {
bodies[i].parentNode.removeChild(bodies[i])
break;
}
}
var heads = document.getElementsByTagName("head");
for (var i = 0; i < heads.length; i++) {
if (heads[i].children.length == 1) {
var s = heads[i].firstChild;
heads[i].parentNode.removeChild(heads[i])
document.head.appendChild(s);
break;
}
}
}
window.setTimeout(fixA4J, 100);
// ]]>
</script>
<!-- <![endif]-->