Включение js файла из другого js файла

Panchous

Павел
Включение js файла из другого js файла

Хочу написать иерархию классов на js.
Можно ли включить в один js файл другой js файл (определения базовых функция и объектов)? как?

читал про import/export на
http://devedge.netscape.com/library/manuals/2000/javascript/1.5/reference/stmt.html#1082618 но толком не понял

знаю, что можно включать все файлы сразу в html,
но меня интересует именно включение из js-файла

_______
если можно, простейший пример импорта объекта или функции
 

Panchous

Павел
IBSN
я правильно понял ?
base.js :
function Base() {
this.id = Math.random();
}

obj.js :
@import "base.js"
function Obj(){
this.base = new Base();
}

html :
<script ... src="obj.js">
var my = new Obj();
</script>
___________
так не работает....
можно минимальный рабочий код?
_________________
спасибо за отклик
 

lucas

Guest
Кажется, IBSN попутал JavaScript с CSS.

По проблеме:
Код:
<script src='http://host/path/to/script.js'/>
 

MiRacLe

просто Чудо
lucas
IBSN действительно попутал %) в JS можно сделать "емуляцЫю" @import
PHP:
$import("path/to/file.js");

function $import(path){
	document.write("<" + "script src=\"" + path + "\"></" + "script>");
}
З.Ы. пишем код на коленке - пальцем ;o)
 

IBSN

Новичок
: ) попутал попутал, что за слэнг :))) я просто "говорил глупости в пределах разумного" (с)
И вообще "человеку свойственно ошиваться" (с)
 

Panchous

Павел
MiRacLe
ты просто чудо)
____
получается, что если у меня несколько классов, использующих базовый, то файл будет включаться неоднократно...
____
все равно, спасибо за предложенное решение - видимо других способов нет...

ПС:
а "$" перед функцией зачем?
 

lucas

Guest
а "$" перед функцией зачем?
Исключительно для красоты. :)
Чем-то напоминает "собаку".

-~{}~ 05.10.04 15:50:

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

Panchous

Павел
Всем БОЛЬШОЕ спасибо!
Вы мне очень помогли.
_______________
однако проблема не решается....
если определить свою ф-ю импорта,
то ее тоже надо как-то включать или определять для каждого из классов: получается замкнутый круг...
__________
думаю, самым приемлемым решением будет необходимость включения базового файла:
Код:
<script ... scr="base.js"></script>
<script ... scr="usingBase1.js"></script>
<script ... scr="usingBase2.js"></script>
 

MiRacLe

просто Чудо
PHP:
var  scripts = document.getElementsByTagName("script");
теперь можешь колупаться по scripts[x].src и проверять загружен ли текущий файл... больше фантазии ... работаем над воображением :)
 

Perl || PHP ?

Guest
Panchous, тебе MiRacLe дал дельный совет. Могу предложить окончательный вариант: итак, создаешь один файл config.js, в котором пишешь функцию import() и массив loadedScripts, в который из функции imoprt будешь записывать загруженные скрипты (я просто не уверен работает ли document.getElementsByTagName во всех браузерах). Далее в каждом из твоих дочерних js классов (файлов) в начале будешь вызывать imoprt(path/to/base.js).

А в html включаешь сначало config.js , а потом дочерний класс.
 
Сверху