Pers.narod.ru. Javascript. Подключение скрипта из другого скрипта и работа с модулями на Javascript

Само по себе динамическое подключение скрипта из скрипта на Javascript несложно, вот законченный пример, здесь мы загружаем скрипт из файла с именем test.js, находящегося в текущей папке:

var script = document.createElement ('script');
script.src = 'test.js'; //или полный URL файла js
document.getElementsByTagName ('head')[0].appendChild (script);
alert('script loaded'); //только для иллюстрации, можно убрать строку

Другое дело, что полезность этого подхода сомнительна - например, просто описать в файле test.js функцию или глобальную переменную, а затем использовать их в подключающем скрипте Вы не сможете. Поскольку ни "классов в чистом виде", ни пространств имён в Javascript нет, программисты просто создают объект и считают его пространством имён. Примеры Вы можете посмотреть хоть в исходниках популярной библиотеки JQuery.

Приведём и собственный небольшой пример.

Файл lib.js содержит "ядро" системы:

var lib = {
 add : function (name, method) { lib[name] = method; }  
};

Файл functions.js - это "программный модуль", там описаны реализации функций, в этом листинге функция всего одна, на самом деле их может быть сколько угодно.

function f1() { return 1; }
lib.add ( "f1", f1 );

Файл script.js - это "реализация", он может использовать функции библиотеки:

var t=lib.f1();
alert (t);

Остаётся всё это загрузить в нужном порядке, вот соответствующий документ HTML:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
 <meta content="text/html; charset=Windows-1251" http-equiv="content-type">
  <title>Тест</title>
</head>
<body>
 
<script type="text/javascript" src="lib.js"></script>
<script type="text/javascript" src="functions.js"></script>
<script type="text/javascript" src="script.js"></script>
<noscript><p>Извините, для работы приложения нужен включённый Javascript</p></noscript>
 
</body>
</html>

С содержательной точки зрения это мало что даёт, но позволяет придерживаться привычного ООП-программистам стиля разработки.

 Пример в архиве ZIP (1 Кб)

Рейтинг@Mail.ru

вверх гостевая; E-mail
Hosted by uCoz