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-faceCSS には好きなだけルールを追加できます。
注意:プロパティ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/"
],