Chrome拡張子の付いた標準フォント以外のものを使用したい。GoogleWeb Fontsを使用する可能性に興奮しましたが、Webフォントの転送にペナルティが発生する可能性があるようです拡張機能がそれを使用するときはいつでも、ネットワーク経由で、拡張機能のパフォーマンスに影響を与えます。Chromeでサポートされているすべてのプラットフォーム(Windows/Macなど)で機能する拡張機能でフォントをパッケージ化するオプションはありますか?前もって感謝します
フォントを選択します。例として "Stint Ultra Expanded" を取り上げます。それをあなたのページに追加する方法の例があります:
<link href='http://fonts.googleapis.com/css?family=Stint+Ultra+Expanded' rel='stylesheet' type='text/css'>
href
だけを取り、ブラウザーで開きます。次のようなものが表示されます。
@font-face {
font-family: 'Stint Ultra Expanded';
font-style: normal;
font-weight: 400;
src: local('Stint Ultra Expanded'), local('StintUltraExpanded-Regular'), url(http://themes.googleusercontent.com/static/fonts/stintultraexpanded/v1/FeigX-wDDgHMCKuhekhedWmdhyVWfbygZe-w47Q2x_f3rGVtsTkPsbDajuO5ueQw.woff) format('woff');
}
url
値の最初のパラメータをsrc
プロパティから取得(http://themes.googleusercontent.com/static/fonts/stintultraexpanded/v1/FeigX-wDDgHMCKuhekhedWmdhyVWfbygZe-w47Q2x_f3rGVtsTkPsbkb .woff)。
このファイルをダウンロードしてください。
local
パラメータのsrc
プロパティの値をファイル名として使用(Stint Ultra Expanded)
簡単な方法は、wgetを使用してダウンロードすることです。
wget -O "Stint Ultra Expanded.woff" http://themes.googleusercontent.com/static/fonts/stintultraexpanded/v1/FeigX-wDDgHMCKuhekhedWmdhyVWfbygZe-w47Q2x_f3rGVtsTkPsbDajuO5ueQw.woff
次に、cssファイルを作成し、前に見たコンテンツを追加します。ただし、src
プロパティの値を変更する必要があります。すべてのlocal
sを削除し、url
を調整します。これは次のようになります。
@font-face {
font-family: 'Stint Ultra Expanded';
font-style: normal;
font-weight: 400;
src: url('../fonts/Stint Ultra Expanded.woff') format('woff');
}
次に、CSSファイルを拡張子に追加し、フォントを使用します。
popup.html
<!DOCTYPE html>
<html>
<head>
<title></title>
<link href='css/fonts.css' rel='stylesheet' type='text/css'>
</head>
<body>
<span style="font-family: 'Stint Ultra Expanded';">Hello Font</span>
</body>
</html>
Content_scriptでこのフォントを使用する場合は、CSSでurl
を調整する必要があります。
@font-face {
font-family: 'Stint Ultra Expanded';
font-style: normal;
font-weight: 400;
src: url('chrome-extension://__MSG_@@extension_id__/fonts/Stint Ultra Expanded.woff') format('woff');
}
@font-face
必要に応じて、CSSのルール。
注意:local
プロパティのsrc
値は、それを格納するために使用する必要がある名前を示します。この名前を使用することをお勧めします。
2番目の通知:予想されるgoogleのように使用している場合、ブラウザーはこのフォントがすでにローカルで使用可能かどうかを確認します。そうでない場合は、ダウンロードして保存します。したがって、次回は以前に保存されたフォントを使用します。
Chrome 37(多分以前))の時点で、拡張機能のマニフェストでフォントをWebアクセス可能なリソースとして言及する必要があります。
"web_accessible_resources": [
"font/*.woff2"
]
そうしないと、次のようなエラーが表示されます。
Denying load of chrome-extension://{ID}/font/My Web Font.woff2.
Resources must be listed in the web_accessible_resources manifest key in order to be loaded by pages outside the extension.
これはかなり古いですが、まだ問題がある場合は、JavaScriptでフォントファイルをロードすることができます。シャドウdom内でフォントフェース宣言を機能させるのに苦労しました。すべてのスタイルがロードされますが、chromeはfont-face宣言を完全に無視します。
let font = new FontFace("yourFontName", "url('path/to/font/file.woff')");
document.fonts.add(font);
これは私にとっては美しく機能します。 font-faceを使用することをお勧めしますが、私の使用例はChromeのバグだと確信しています。 これはその仕様です
Google Web Fontsにアクセスするためのアクセス許可をユーザーに要求することは、それらを埋め込むよりもはるかに簡単です(これが最終的なオフラインシナリオで完全に意味がある場合でも)。
manifest.json
"permissions": [
"http://fonts.googleapis.com/",
"https://fonts.googleapis.com/"
],