代码之家  ›  专栏  ›  技术社区  ›  PKKid

在下载自定义字体之前不要运行Javascript函数?

  •  1
  • PKKid  · 技术社区  · 14 年前

    有没有办法在下载自定义css字体资源之前不运行Javascript函数。

    加载字体的CSS如下(使用smilie face语法完成):

    @font-face {
      font-family: 'LiberationMonoRegular';
      src: url('liberationmono-regular.eot');
      src: local('☺'),
        url('liberationmono-regular.woff') format('woff'),
        url('liberationmono-regular.ttf') format('truetype'),
        url('liberationmono-regular.svg#webfontkIKtf5pm') format('svg');
      font-weight: normal;
      font-style: normal;
    }
    

    我想做的Javascript函数如下所示。我在黑暗中拍摄,真的不认为这是可能的。。

    $(function() {
        waitForFontExists('LiberationMonoRegular', function() {
            <do something>
        });
    });
    
    2 回复  |  直到 14 年前
        1
  •  3
  •   Ken Redler    14 年前

    谷歌 WebFont Loader project允许您使用各种web字体提供程序,并公开回调,包括 fontloading fontactive . 这可能会有所帮助,这取决于字体来源的灵活性。我没用过,但文件上说:

    除了google和typekit 选项,还有一个自定义模块 可以从任何

    除此之外,还有很多 hackier things to try --比如在目标字体中检查示例呈现的宽度。

        2
  •  2
  •   SpliFF    14 年前

    xmlhttp = new XMLHttpRequest();
    xmlhttp.open("GET", "/path/to/font.ttf",true);
    xmlhttp.onreadystatechange=function() {
      if (xmlhttp.readyState==4) {
         alert("font loaded");
      }
    }
    xmlhttp.send(null)