2010-12-26 36 views

答えて

32

は、CSSのローカルパスを取得する方法です。

+0

一部のChromeバージョンでは、これが動作しないバグがあります。 クイックフィックス: "__MSG _ @@ extension_id__"の代わりに拡張IDをハードコードで使用してください。 これは、ローカルでテストするとうまくいかないことです。 –

+8

https://developer.chrome.com/dev/extensions/manifest.html#web_accessible_resourcesにフォントを追加することを忘れないでください。 –

-1

相対URLを使用してください。それは単純な、きれいだし、™を行うには正しいことである:

@font-face { 
    font-family: 'FontAwesome'; 
    src: url('../font/fontawesome-webfont.eot'); 
} 

私はこの質問は古いです知っているが、それはGoogleで上位の結果だと受け入れられた答えは非効率的です。

編集:他の人がこのために混乱しているようです。私はそれがおそらくコンテンツスクリプトで使用されていないと言及する必要があります。私はポップアップスクリプトでこれをテストして、うまくいきます。

+0

これは本当に効果的ですか?それは私のためではありません。 – Layke

+0

@Laykeパスは、CSSファイルの場所からの相対パスです。この例を単純化したので、おそらく 'format()'を指定する必要があります。 – matpie

+1

これは動作しません。それはで実行されている実際のWebページのコンテンツスクリプト上のリソースを検索しようとします。 –

17

このソリューションは、最終的には私の仕事:

それはコンテンツスクリプトのドキュメントにスタイルノードを挿入します。

フォントAwesomeでは、Chrome用の.woff srcのみが必要です。

Adding @font-face stylesheet rules to chrome extension

マイコード:

var fa = document.createElement('style'); 
    fa.type = 'text/css'; 
    fa.textContent = '@font-face { font-family: FontAwesome; src: url("' 
     + chrome.extension.getURL('lib/fa/fonts/fontawesome-webfont.woff?v=4.0.3') 
     + '"); }'; 
document.head.appendChild(fa); 
マニフェストで

"css":[ 
    "lib/fa/css/font-awesome.min.css", 
    ... 
    ] 

"web_accessible_resources":[ 
    "lib/fa/fonts/*", 
    ... 
    ] 
+1

注: '' css ':[...] 'は' 'content_scripts'の中に入ります:[...]' – IvanRF

-2

古い質問が、私が思うに、これが最善の解決策である:

Firefox extension custom fonts

これは、フォントファイルを指すのではなく、CSSのフォントのbase64でエンコードされたバージョンを含むため、クロムの拡張子にも同じように適用されます。

関連する問題