2

最新のプロジェクトで奇妙なエラーが発生しました。まだ公開されていないため、共有できませんが (会社との契約上の義務があるため)、詳細を以下に示します。

  • iFrame 経由の Facebook ページ
  • 問題はIE7-8のみにあるようです
  • カスタム @font-face フォントの使用
  • VirtualBox で問題を再現できない
  • 同じブラウザで Facebook からページを開いた場合、問題は再現されません (Facebook が問題の一因となっています)。

問題は、ページが最初に IE7-8 で読み込まれたときにフォントが正常に読み込まれ、ユーザーが内部ページに移動すると、すべての @font-face フォントが Web セーフ フォント バックアップに戻ることです。キャッシュがクリアされるまで、(フォントがロードされた最初のページに戻っても) そのままになります。フォントは、Chrome と Foxy の同じテスト マシンにロードされ、ロードされたままになります。

ここでこのエラーを見つけました。Facebook JS は IE の CSS/@font-face に影響しますか? ですが、iFrame バージョンを使用すると問題が解決することが示唆されており、iFrame バージョンを使用しています。

誰にもアイデアはありますか?

4

1 に答える 1

1

これは IE8(?) のバグです。ページの読み込み後に CSS スタイルシートをリロードする必要があります。

リンク要素に ID を追加します。

<link rel="stylesheet" href="css/style.css" id="css-element" />

次に (jQuery を使用):

$(document).ready(function() {
    $('#css-element')[0].href=$('#css-element')[0].href;
});

...または Modernizr 機能を使用します (すべてのブラウザーでリロードしないようにするため):

$(document).ready(function() {
    if ($('html.lte-ie9').length > 0)
    {
        $('#css-element')[0].href=$('#css-element')[0].href;
    };
});

編集: も参照してください: IE8 Web フォント iframe バグの回避策

于 2012-09-07T10:17:23.140 に答える