2010-12-26 2 views

ответ

32

Вот как получить локальный путь в CSS:

body { 
    background-image:url('chrome-extension://[email protected]@extension_id__/background.png'); 
} 

Подробнее об этом here.

+0

В некоторых версиях Chrome есть ошибка, которая мешает этому работать. Быстрое исправление: используйте свой идентификатор расширения жестко закодированным вместо «__MSG _ @@ extension_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 и принятый ответ неэффективен.

EDIT: Кажется, что другие получают смешанные результаты для этого. Я должен упомянуть, что он, вероятно, не работает при использовании в Content Scripts. Я тестировал это в Popup Scripts, и он отлично работает.

+0

Вы уверены, что это сработало? Это не для меня. – Layke

+0

@Layke Путь относится к расположению файла CSS. Я упростил этот пример, поэтому вам, вероятно, еще нужно будет указать 'format()'. – matpie

+1

Это не работает. Он пытается найти ресурс в текущем скрипте фактического веб-страницы. –

17

Это решение, наконец, работал для меня:

Он впрыскивает узел стиля в документ сценария контента.

И для шрифта Awesome вам нужен только .woff src для Chrome.

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

Он применяется в равной степени для расширений chrome, потому что вместо указания на файл шрифта вы включаете в себя кодированную версию basech шрифта прямо в CSS.