Доброго времени суток!
JS должен иметь возможность при выполнении подгружать код и выполнять его.
Алгоритм примерно таков:
1. JS подгружает строку, в которой хранится объект.
2. Этот объект записывается в массив объектов.
3. В нужный момент с этих объектов вызываются нужные функции.
Конкретно сейчас сделал так:
1. Подгружается объект, в котором содержится е определенная переменная gObject и функция init();
2. Основной код вызывает функцию init подгруженного объекта, а функция создает div и записывает его в gObject.
3. Основной код добавляет gObject в нужный компонент DOM.
Вот код:
var ooo = "{gObject: undefined, init: function() {gObject = document.createElement('div');}}";
var widget = eval("(" + ooo + ")");
widget.init();
mainObject.appendChild(widget.gObject);
Но в результате получаю ошибку "Uncaught TypeError: Failed to execute 'appendChild' on 'Node': parameter 1 is not of type 'Node'." на последней строке.
Так же, что удивительно, даже если ooo будет объектом, а не строкой, изменить вторую строку на
var widget = ooo;
то ошибка повторяется, как будто
document.createElement('div'); не выполняется.
Не подскажите, в чем проблема?