Я знаю, что я не могу получить локальный файл из каталога расширения. Можно ли получить файл, который находится внутри самого каталога расширений?
Получить локальный файл внутри папки расширения в Chrome
Ответ 1
Да, вы можете, но только если вы знаете путь к файлу; потому что нет способа получить список каталогов.
Если путь известен, chrome.extension.getURL
вернет URL файла в области расширения.
NOTE
chrome.extension.getURL is deprecated since Chrome 58. Use chrome.runtime.getURL. – Thanks Winand!
Например: chrome.extension.getURL('some_folder/some_file.js')
выводит что-то вроде этого:
chrome-extension://kfcphocilcidmjolfgicbchdfjjlfkmh/some_folder/some_file.js
Протокол chrome-extension
плюс идентификатор расширения - это адрес корневой папки расширения. Обратите внимание, что эта функция будет возвращать URL-адрес, даже если путь указан неверно или файл не существует.
Кроме того, если вам нужно что-то более мощное, вы можете прочитать о новом FileSystem API. При этом вы можете создавать, читать, перемещаться и записывать в изолированную область локальной файловой системы пользователя.
Ответ 2
В Chrome 17 или более поздней версии для этого необходимо включить раздел web_accessible_resources, чтобы разрешить вставлять изображение, упакованное в расширение, на веб-страницу. http://developer.chrome.com/extensions/manifest.html#web_accessible_resources
{...
"web_accessible_resources": [
"images/my-awesome-image1.png",
"images/my-amazing-icon1.png"
],...}
(любезно предоставлено jhaury)