2012-07-12 37 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