1

sIFR 3、jQuery BlockUI、およびUpdatePanelを使用すると、ページが更新されてSIFRフォントが消えるという問題が発生します。

UIのブロックとブロック解除を処理するために使用するJavascriptファイルで、部分的なポストバックを検出し、UIのブロックを解除します。

prm.add_endRequest(function(){$ .unblockUI();});

このコードブロックでsIFR.replace()を再実行すると、フォントsIFRフォントはレンダリングされますが、#文字がページタイトル(ブラウザウィンドウ/タブの上部)に置き換わります。これはIEでのみ発生するようです(図を参照)。LinkBut​​tonを使用してページを更新するたびに、余分な#文字が追加されるため、ページタイトルは「#########」のようになります。なぜこれが起こっているのか考えていますか?

代わりに実行する必要がある特定のsIFR.update()関数はありますか?sIFR.redraw()またはsIFR()を実行すると、javascriptの実行時エラーが発生します。

4

1 に答える 1

1

これは、IE のバグが原因です。

これは IE の非常に特殊なバグで、ページ内の各 Flash ムービーについて、URI のフラグメント識別子部分 (#foo) がドキュメント タイトルで繰り返されます。このバグは、ブラウザが使用する VBScript エンジンを更新することで修正できることが、Macromedia によって報告されています。ただし、まだ間違ったエンジンを使用しているユーザーのために、sIFR には回避策が含まれています。 http://wiki.novemberborn.net/sifr/Fragment+Identifier+Bug

sIFR 3 には回避策がありますが、ページがフラグメント識別子 ( window.location.hash != "") で読み込まれない限り有効になりません。あなたの場合、ページが識別子なしで読み込まれたと仮定し、それから識別子を追加してから、置換を再実行してバグを再度呼び出します。

r436 にパッチを適用するには、(の圧縮バージョン) をsifr.js開きthis.fix=c.ua.ieWin&&window.location.hash!=""this.fix=c.ua.ieWin.

于 2009-11-16T22:05:36.260 に答える