Ответ 1
В Chrome вы можете создать расширение, содержащее все локальные файлы, которые необходимо загрузить. Это сделает ваши файлы доступными через chrome-extension://...
вместо file://...
Сделайте файл с именем manifest.json
в новой папке и заполните его:
{
"name": "File holder",
"manifest_version": 2,
"version": "1.0",
"web_accessible_resources": ["test.js", "other.js", "yetanother.js"]
}
Затем поместите все сценарии, которые вы хотите загрузить в этом новом каталоге, и убедитесь, что они включены в список манифеста web_accessbile_reources
. Загрузите расширение, перейдя на chrome://extensions
, включив Developer Mode
и выбрав новую папку с помощью Load unpacked extension...
.
Теперь вы можете получить доступ ко всем файлам в вашем каталоге расширений с помощью chrome-extension://[app_id]/[file_name]
, где "app_id
" - это хэш, указанный для расширения на странице chrome://extensions
. Обратите внимание, что поскольку протоколы и имена хостов отличаются от того, где вы делаете свою фактическую работу (если вы не решите сделать все свое развитие в папке расширения, что может быть приемлемо для вас), ресурсы расширения являются междоменными и могут быть только загружается через тег <script>
.
Теперь с консоли вы можете:
var s = document.createElement("script");
s.src = "chrome-extension://aefigdoelbemgaedgkcjpcnilbgagpcn/test.js";
document.body.appendChild(s);
(Предположим, что ваш файл test.js
, а ваш идентификатор приложения aefigdoelbemgaedgkcjpcnilbgagpcn
.)
Это немного печатать, я знаю, но, возможно, вы можете сохранить часть chrome-extension://[app_id]
как сокращенную переменную?