2011-07-29 5 views
2

私はGoogle webfont loaderを使用していますが、fontactiveコールバックを動作させることができません。フォントはページ上でレンダリングされていますが、何らかの理由でコールバックが起動していません。 (代わりに5秒間待ってから、fontinactiveコールバックが発生します)。私は、関数に2つの変数をどのように宣言しているかに問題があると考えます。Google/Typekit Webfont-LoaderでASCII以外のフォントが検出されない

編集:問題は、変数の宣言方法ではなく、フォントと関係がある可能性があります。フォントローダは、 "STIXGeneral"フォントファミリがロードされるときに正常に検出します。これには通常の文字が含まれます。

fontactiveコールバックのドキュメントはhereです。私はfontactiveコールバックの使用例を見つけることができませんでした。

以下に私のコードのコピーを掲載しました。 JavaScriptから


:STIX-fonts.cssから

WebFont.load({ 
    custom: { 
     families: [ 'STIXSizeOneSym' ], 
     urls: ['resources/stix-fonts/STIX-fonts.css'] 
    }, 
    fontactive: function(stixsizeonesym, n4) { alert("1") }, 
    fontinactive: function(stixsizeonesym, n4) { alert("2") }, 
    inactive: function() { alert("10") } 
}); 


@font-face { 
    font-family: 'STIXSizeOneSym'; 
    src: url('STIXSizOneSymBol-webfont.eot'); 
    src: url('STIXSizOneSymBol-webfont.eot?#iefix') format('embedded-opentype'), 
      url('STIXSizOneSymBol.otf') format('opentype'), 
      url('STIXSizOneSymBol-webfont.ttf') format('truetype'); 
    font-weight: bold; 
    font-style: normal; 
    } 
+0

2番目の変数と思われる場合は、単に試してみてください。問題を別の方法で解決した場合は、お知らせください。 –

+0

@Replete - 2番目の変数(上記の 'n4 ')は、ロードされるフォントの重みとスタイルを指定するために使用されます。 (例えば、n4は400のウェイトを持つローマンスタイルを指定します。これは通常フォントのデフォルトです)。ここで問題となるのはn4変数であると私が推測した理由は、 STIXSizeOneSymフォントの重さとスタイルは実際にはあります。 Macをお持ちの場合は、FontForgeを使用して、フォントの宣言された重量とスタイルを読み取ることができますが、私はRosettaのインストールを壊したため、これを行うことはできません。 –

+0

@Replete(続き)誤った変数を使用することによるものではなく、 "STIXSizeOneSym"フォントに文字または数字のグリフが含まれていないためです。 'n4'の使用は、英数字を含む他のSTIXフォントでも機能します。そして、いいえ、私は解決策を見いだせませんでした。 –

答えて

4

私はwebfontloaderの開発者の一人です。現在、ASCII文字列を使用して、フォントがロードされているかどうかを検出しています。したがって、フォントに "BESbswy"という文字が含まれていない場合、WebFontローダーはそれを検出できません。私たちは構成可能なテスト文字列のサポートを追加しています(あなたのフォントがサポートするUnicode範囲のいくつかの文字を含めることができます)。これについてwebfontloaderリポジトリ(https://github.com/typekit/webfontloader/issues/104)で問題をオープンしました。

一時的な解決策として、フォントからテスト文字列に文字を追加する独自のバージョンのwebfontloaderをコンパイルできます。もしあなたがそれに助けが必要なら私に教えてください。

+1

webfontローダーの独自のバージョンを別のテスト文字列を使用してコンパイルする方法はありますか? –

0

は同じPROBを持ち、任意のsolutiを見つけられませんでしたまだBreeやPlayfairのようなフォントには影響しません。私の疑惑は、Webkitが徐々にフォントをダウンロードすることと関係があることです。それは "fontinactive"はすぐにを発射されるようです。私はいくつかの複雑なJavascriptのもので終わり、ある間隔で隠れたコンテナの寸法を調べました。/

+0

あなたの問題が私のものと同じかどうかはわかりません。私の問題はクロスブラウザでした。私は、STIXフォントに問題があったのは、ASCII文字の標準セットが含まれていなかったからです。 –

2

Google Early Accessからダウンロードした中国語フォント "cwTeXHei"でローダーを使用しようとしています。

私は午後を過ごし、最終的にフォローコードを使用してfontactive作品作り:注意へ

WebFontConfig = { 
    custom: { 
    families: ['ChineseCustomFont'], 
    testStrings: { 
     'ChineseCustomFont': '\uE003\uE005' 
    }, 
    }, 
    timeout: 8000 
}; 
(function() { 
    var wf = document.createElement('script'); 
    wf.src = ('https:' == document.location.protocol ? 'https' : 'http') + 
    '://ajax.googleapis.com/ajax/libs/webfont/1.5.3/webfont.js'; 
    wf.type = 'text/javascript'; 
    wf.async = 'true'; 
    var s = document.getElementsByTagName('script')[0]; 
    s.parentNode.insertBefore(wf, s); 
})(); 

ポイント:

  1. 使用webfontローダー> 1.5を。"testStrings"のサポートのために0を返します
  2. 'testStrings'として '\ uE003 \ uE005'を試してみましたが、 、デフォルトは5000です

それは誰かにも役立つことを願っています!

関連する問題