Chrome 拡張機能で標準フォント以外を使用したい。Google Web Fonts を使用できる可能性に興奮しましたが、拡張機能のパフォーマンスに影響を与えるほど、拡張機能を使用するたびにネットワーク経由で Web フォントを転送すると、ペナルティが発生する可能性があるようです。Chrome がサポートするすべてのプラットフォーム (Windows/Mac/など) で動作する拡張機能をフォントにパッケージ化するオプションはありますか? 前もって感謝します
3 に答える
フォントを選択します。例として、「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/sntultraexpanded/v1/FeigX-wDDgHMCKuhekhedWmdhyVWfbygZe-w47Q2x_f3rGVtsTkPsbDajuO5ueQw.woff )。
このファイルをダウンロードします。
プロパティのlocal
値のパラメータをファイル名として使用する( Stint Ultra Expanded )src
簡単な方法は、wget を使用してダウンロードすることです。
wget -O "Stint Ultra Expanded.woff" http://themes.googleusercontent.com/static/fonts/stintultraexpanded/v1/FeigX-wDDgHMCKuhekhedWmdhyVWfbygZe-w47Q2x_f3rGVtsTkPsbDajuO5ueQw.woff
css ファイルを作成し、前に見たコンテンツを追加します。ただし、プロパティの値を変更する必要がありsrc
ます。すべての を削除しlocal
て調整し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 でこのフォントを使用したい場合はurl
、css で調整する必要があります。
@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.
ユーザーに Google Web Fonts へのアクセス許可を求めることは、それらを埋め込むよりもはるかに手間がかかりません (最終的なオフライン シナリオではこれが完全に理にかなっている場合でも)。
マニフェスト.json
"permissions": [
"http://fonts.googleapis.com/",
"https://fonts.googleapis.com/"
],