我有一个包含此代码的页面(由在 Glassfish 3.1.1 上运行的 JSF 2.1.3 生成
<a class="pagenumber"
onclick="mojarra.ab(this,event,'click',0,'main:coupon-all main:page-top main:page-bottom');return false"
href="#"
id="main:j_idt221:0:j_idt224">1</a>
这是从这部分生成的(在 ui:repeat 中):
<h:commandLink styleClass="pagenumber">
<f:ajax listener="#{productDetailInfoView.changePage(page)}"
render=":main:page-top :main:page-bottom :main:coupon-all"/>#{page}
</h:commandLink>
其中:
:main:page-top
是页面顶部导航
:main:page-bottom
的 ID 是页面底部导航
:main:coupon-all
的 ID 是 ui:repeat 的 ID,它列出了页面中的所有产品
问题:
在大多数浏览器(和往常一样)以及 IE 7 和 IE 9 上,一切都很好。但是在 IE8 上(主要在 Windows XP 上,但也可能在 Vista/8 上),浏览器崩溃并重新加载页面说它已“恢复”它(有时显示“崩溃报告”页面并要求向 MS 发送报告或取消) .
附加信息:
我实际上花了很多时间调试这个,问题似乎出在jsf.js
(我使用 Stage: development 来获取完整版本),在 ajax 响应部分。但是我找不到它的哪个精确部分,因为在调试完该jsf.ajax.request(...)
部分之后,它都是异步的,我陷入了无处可断的困境。发送请求似乎没问题,因为此调用完成时浏览器崩溃。
现在的问题是,如果我删除要重新渲染的元素之一(导航栏或产品列表之一),其余元素将无错误地渲染。但是我需要渲染所有 3 个元素,而不仅仅是两个...
编辑:12/07/05
我发现与该问题高度相关的项目是圆角的PIE.htc。我需要重新渲染的 3 个块中的许多元素都有使用 CSS 的 styleClass,如下所示:
.round {
border-radius: 5px;
-moz-border-radius: 5px;
-webkit-border-radius: 5px;
behavior: url('../PIE.htc');
-khtml-border-radius: 5px;
}
找到了 PIE.htc 文件,并且圆角在 IE7 和 8 中按预期正确显示。然而,它使这些 IE 浏览器上的页面非常慢(我不介意,我已被允许删除 IE 的圆角)。但非常奇怪的是,如果我简单地删除 CSS 中对 PIE.htc 的所有引用,那么我仍然会遇到错误。也许其他border-radius
人正在制造问题。我目前正在尝试删除任何类型的圆角,即使对于所有浏览器也是如此,并查看它导致的位置。
我的页面也经过 XML 验证。
任何帮助表示赞赏...