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はページ ナビゲーションの上部の ID です ページ ナビゲーション :main:page-bottomの下部の ID は、 :main:coupon-allページ内のすべての製品を一覧表示する ui:repeat の ID です

問題:

ほとんどのブラウザー (いつものように) と IE 7 および IE 9 では、すべて問題ありません。しかし、IE8 (ほとんどは Windows XP ですが、おそらく Vista/8 でも) では、ブラウザーがクラッシュし、「回復」したことを示すページがリロードされます (「クラッシュ レポート」ページが表示され、MS にレポートを送信するかキャンセルするように求められる場合があります)。 .

追加情報:

私は実際にこれをデバッグするのにかなりの時間を費やしましたが、問題jsf.jsは ajax 応答部分 (ステージ: 開発を使用して完全なバージョンを取得する) にあるようです。しかし、そのjsf.ajax.request(...)部分をデバッグした後、それはすべて非同期であり、ブレークポイントのどこにも行き詰まったため、その正確な部分を見つけることができませんでした。この呼び出しが完了するとブラウザがクラッシュするため、リクエストの送信は問題ないようです。

ここで、再レンダリングする要素の 1 つ (ナビゲーション バーまたは製品のリストのいずれか) を削除すると、残りの要素はエラーなしでレンダリングされます。ただし、2つだけでなく、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