@Zopieuxのフローチャートに基づいて、私は私の場合のような他の企業のイントラネットがこれを持っているクライアントのためにあった、フォントのダウンロードが無効になっているときIE6-9ため、このスクリプトを動作させることができました設定が無効です。
CSS:タイプをチェックし
@font-face {
font-family: 'TestFont';
src: url('/includes/font.php?type=eot');
src: url('/includes/font.php?type=eot#iefix') format('embedded-opentype'),
url('/includes/font.php?type=woff') format('woff'),
url('/includes/font.php?type=ttf') format('truetype'),
url('/includes/font.php?type=svg#UniversLTStd49LtUltraCn') format('svg');
font-weight: normal;
font-style: normal;
}
PHP、フォントフェイスのsrc URLが要求されたとき、それは、このスクリプトを引っ張るには、クッキーを設定し、選択肢のwebfontを提供しています。
<?php
$type = $_REQUEST['type'];
$location = "Location: /includes/fonts/universltstd-lightultracn-webfont.".$type;
// create a cookie
setrawcookie("FontDownloaded", 1, time()+3600*24, '/');
header($location);
?>
JSは、クライアント側では、チェックするためにこのような何かを:フォントダウンロードが有効になっていると、あなたは再ルーティングをしていないフォントファイルにした場合、IEがする@ font-faceエラーをスローしますクッキーのために、とcufon-yui.jsまたはtypeface.jsなどの代替を行います
$(function() {
$('body').append('<span id="TestFont"/>');
$('#TestFont').html('Testing').css({
fontFamily: 'TestFont',
opacity: 0
});
// find cookie
bool = Boolean(getCookie('FontDownloaded')); // use your own cookie method
if (!bool) {
// implement @font-face fallback
Cufon.replace('.items', { fontFamily: 'NewFont' });
}
$('#TestFont').remove();
});
これは私の最初のアイデアでしたが、この特定のプロジェクトにはサーバー側のスクリプトは使用できません。いずれにしても、@ font-faceのようにフォントのダウンロードをどのようにシミュレートしますか?現時点では、フォント自体をajaxで取得しようとしていますが、フォントのダウンロードが無効になっても、それは正常に取得され、ダウンロードされます。 – Scorpius
JSを使用してダウンロードすることは、明らかに何でも可能です。あなたは説明したスクリプトにつながる@ font-faceを置いてフォントをダウンロードするようIEに依頼する必要があるので、ブラウザがそれをダウンロードするかどうかを見ることができます。あなたがサーバー上で何もできないのなら、あなたはうんざりしていると思います。 – zopieux