2012-07-12 68 views
2

我有一個奇怪的錯誤來通過我的最新項目。它沒有推出,所以我不能分享(因爲與我公司的合同義務),但這裏有一些細節:Facebook的字體面加載,然後在IE7-8中消失

  • 通過iFrame的Facebook頁面
  • 問題似乎是在IE7-8只有
  • 使用自定義@字體面字體
  • VirtualBox上無法重現的問題
  • 當問題沒有重現相同的瀏覽器中打開網頁了臉譜(Facebook正在促進這個問題)

問題是當頁面最初加載到IE7-8中時,字體加載正常,當用戶轉到內部頁面時,所有@ font-face字體都會恢復爲其網頁安全字體備份。他們將保持這種狀態(甚至返回到加載了字體的第一頁),直到清除緩存。字體加載&保持加載在Chrome & Foxy中的同一臺測試機器上。

我在這裏找到這個錯誤,Facebook JS affecting CSS/@font-face in IE?,但建議使用iFrame的版本應該可以解決的問題,我們正在使用的iFrame版本。

任何人有任何想法?

+0

沒有任何代碼提供,很難幫助你。請寫下代碼片段,它重現您的問題。 – borisdiakur 2012-07-13 15:11:30

+0

由於我的工作性質,我無法分享代碼。這是張貼代碼並冒着我的工作風險,或者沒有發佈代碼,也沒有得到這方面的幫助。 – Nicknameless 2012-07-13 19:52:16

回答

1

這是IE8(?)錯誤。您需要在頁面加載後重新加載CSS樣式表。 (使用jQuery)

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

然後:

ID添加到您的鏈接元素

$(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 font iframe bug workarounds