Меню сайта |
|
|
Форма входа |
|
|
Поиск |
|
|
Календарь |
|
|
Архив записей |
|
|
Статистика |
Онлайн всего: 1 Гостей: 1 Пользователей: 0 |
|
|
| | |
| Главная » 2013 » Ноябрь » 9 » Javascript. Загрузка внешнего скрипта.
04:09 Javascript. Загрузка внешнего скрипта. |
Вот есть такое во мне. Страшно не люблю огромные простыни кода. И где есть возможность - делю его на отдельные файлы. Вот и для скриптов на iMacros я искал возможность отделить часть функций и прототипов от основного скрипта, дабы не мешались под ногами. Одна проблема - загрузить их потом во время выполнения. Поиск по JS выдает кучу информации, но только связанной с разработкой веб-страниц или плагинов. Но это не сломило меня и я нашел таки решение проблемы. Первым вариантом было нечто очень нагруженное вызовами и... Да что рассказывать, вот оно:
Код var file = Components.classes["@mozilla.org/file/local;1"] .createInstance(Components.interfaces.nsILocalFile); file.initWithPath("c:\\path\\to\\file\\myscript.js"); // <-- имя файла тут var scriptURI = Components.classes["@mozilla.org/network/io-service;1"] .getService(Components.interfaces.nsIIOService).getProtocolHandler("file") .QueryInterface(Components.interfaces.nsIFileProtocolHandler) .getURLSpecFromFile(file); Components.classes["@mozilla.org/moz/jssubscript-loader;1"] .getService(Components.interfaces.mozIJSSubScriptLoader) .loadSubScript(scriptURI);
Перебор, но оно работает. Правда потом откопалось более изящное и простое решение:
Код Components.classes["@mozilla.org/moz/jssubscript-loader;1"] .getService(Components.interfaces.mozIJSSubScriptLoader) .loadSubScript("file:///c:/path/to/file/myscript.js");
Прошу любить и жаловать. А заодно и пользоваться. Правда осталось еще 2 проблемы, к которым я пока не смог найти решения. Во-первых, это любовь ФФ к кешированию всего и вся. Увы, но малейшие изменение прицепляемого файла требует перезагрузки браузера. Иначе изменение просто не будет учтено. Файл будет получен из кеша... Ну и во-вторых, я пока не смог изнутри скрипта определить папку, из которой он был запущен. То есть, надо пока жестко прописывать пути ко всем файлам. И любое перемещение скрипта требует его правки в области основных настроек. Хотя, если взять за правило в отдельных файлах держать только прототипы, которые используются в 2х и более скриптах, то имеет смысл для них просто завести отдельную папку и ссылаться на нее. К слову, один подобный прототип я опубликую в течении пары дней, в качестве замены несколько устаревшей статьи. В нем будет учтен мой прогресс в изучении JS и... ну и что-то еще. Это точно.
|
Просмотров: 634 |
Добавил: websponsory
| Рейтинг: 0.0/0 |
Добавлять комментарии могут только зарегистрированные пользователи. [ Регистрация | Вход ]
| |
| | |
|