如何让@ font-face使用IE9“中高”安全设置

时间:2013-07-06 04:53:41

标签: security internet-explorer-9 font-face prezi

我在政府网络中工作,其中安全设置由IT管理。我们也限制在所有机器上使用IE9。我为学生开发课程内容中使用的网络应用程序(我们是一所学校),所以我尽量使页面看起来尽可能现代,以免让学生厌倦。我们的机器甚至没有Helvetica,我们教平面设计。

直到最近,我还试图让@ font-face在我为学校制作的页面上工作,从而放弃了希望。那是......直到我发现了Prezi。如果你使用IE9和Internet网站安全设置设置为“中等高”来转到http://prezi.com,你会发现该网站仍然神奇地在fonts.googleapis网站的页面上加载其“PT Sans”字体。当我发现这一点时,我花了整整24小时试图对他们的方法进行逆向工程,无法用我的场外服务器复制它,然后在接下来的24小时内跟踪Prezi的前端开发人员,看看是否他们可以让我知道他们的秘密(嘿,这是政府,我们有空闲时间),当然都无济于事。

看到Prezi想出来的一线希望让我变得像狗一样迷恋这个问题。我在一年的时间里尝试了互联网上的所有技巧和修复。我仍然无法让它发挥作用。

Prezi使用:

<link href='//fonts.googleapis.com/css?family=PT+Sans:400,700&subset=latin-ext,cyrillic-ext' rel='stylesheet' type='text/css'>

从索引页面调用字体,该页面返回:

@font-face {
  font-family: 'PT Sans';
  font-style: normal;
  font-weight: 400;
  src: url(http://themes.googleusercontent.com/static/fonts/ptsans/v5/mqvGe0REcQNb_tfYSePALA.eot);
  src: local('PT Sans'), local('PTSans-Regular'), url(http://themes.googleusercontent.com/static/fonts/ptsans/v5/mqvGe0REcQNb_tfYSePALA.eot) format('embedded-opentype'), url(http://themes.googleusercontent.com/static/fonts/ptsans/v5/jduSEW07_j4sIG_ERxiq4Q.woff) format('woff');
}
@font-face {
  font-family: 'PT Sans';
  font-style: normal;
  font-weight: 700;
  src: url(http://themes.googleusercontent.com/static/fonts/ptsans/v5/1FvfuwkSjtdD3II7O-pVp_esZW2xOQ-xsNqO47m55DA.eot);
  src: local('PT Sans Bold'), local('PTSans-Bold'), url(http://themes.googleusercontent.com/static/fonts/ptsans/v5/1FvfuwkSjtdD3II7O-pVp_esZW2xOQ-xsNqO47m55DA.eot) format('embedded-opentype'), url(http://themes.googleusercontent.com/static/fonts/ptsans/v5/HXiERDIZdwFzjXlbcMq7XPesZW2xOQ-xsNqO47m55DA.woff) format('woff');
}

然后他们就像使用font-family的常规网络字体一样使用它:'PT Sans'; !!!

我可以在本地html文件上复制整个内容,因为Intranet页面的安全设置低于常规Internet页面。但是我没有被授权将Intranet用于我的应用程序。

Prezi是怎么做到的!他们可以做些什么来让它在他们的网站上工作? Prezi前端开发人员没有回复我的Facebook,Twitter,电子邮件或语音邮件。 Prezi软件显然是专有的,但这是他们网站上的网页,而不是他们的软件产品。

我的IT人员也没有帮助,告诉我我已经知道的事情,比如“中高”安全设置阻止@ font-face,duh(但显然他们没有,因为Prezi做到了)。他们肯定有更大的鱼来炸。作为安抚奶嘴,他们将Chrome和FF推到了我的隔间。他们处理的大多数是“我的屏幕是黑色的”或“我的桌面是什么类型”类型的问题。

因为我的问题对我的环境,建筑和情况如此具体,所以这真是一个黑暗的镜头。我确实花了超过24小时逆向工程Prezi的主页来解决这个问题无济于事。这是浪费时间。

当没有其他网站,甚至http://www.google.com/fonts在我们的机器上显示字体时,他们怎么可能绕过我网络的安全设置呢?

注意:我为这个喋喋不休道歉。已经是凌晨1点了,已经37个小时了。

1 个答案:

答案 0 :(得分:0)

我认为基本问题是IE不允许您从其他域下载。要绕过它,您可以在自己的服务器上托管字体。这是基本设置:

  1. 下载您的ttf字体文件(您可以通过将字体添加到您的收藏集然后点击收藏集'使用'方案右上角的向下箭头来下载谷歌字体)
  2. 将“Nip”转到Font Squirrel并使用他们的“webfont生成器”创建各种permutations needed
  3. 从word squirrel创建的方便示例页面顶部复制@ font-face代码并将其放入css文件中。它看起来像这样:

    @font-face {
        font-family: 'PTSans';
        src: url('PTSans-regular-webfont.eot');
        src: url('PTSans-regular-webfont.eot?#iefix') format('embedded-opentype'),
             url('PTSans-regular-webfont.woff') format('woff'),
             url('PTSans-regular-webfont.ttf') format('truetype'),
             url('PTSans-regular-webfont.svg#PTSansregular') format('svg');
        font-weight: normal;
        font-style: normal;
    
    }
  4. 上传该批次,您应该设置为去。

    注意:这仅适用于“中高”安全设置(及更低)。如果你坚持使用'高',你会遇到Windows默认字体。