2

我有一个包含此代码的页面(由在 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 验证。

任何帮助表示赞赏...

4

0 回答 0