Подключение и инициализация VcorpJS
Подключение VcorpJS
Можно подключить исходный код VcorpJS двумя способами:
- вставить в исходный HTML-код страницы как скрипт или ссылку на внешний файл скрипта.
- подгрузить во время работы веб-страницы.
По-умолчанию код VcorpJS обёрнут в немедленно-вызываемую неименованную (анонимную) функцию.
/* var myObj = */ (function (...) {
...
})(/*'myObj'*/);
В текущем контексте (по-умолчанию window) всегда создаётся переменная-объект VcorpJS, которая получает набор свойств и функций (плагинов).
Вы можете создать любую переменную - копию ссылки на этот объект (в примере выше - myObj).
Можно немного подправить исходный код файла с VcorpJS так, чтобы он стал именованной функцией-объявлением, например любым из способов ниже:
function createVcorp (...) {
...
}
var createVcorp = function(...) {
...
};
В этом случае создать объект VcorpJS можно в любом выбранном контексте (например, во фрейме или в родительском окне), передав контекст (this):
var myContext = window.parent || window.top || window || null; /* window.frames[0].contentWindow */
createVcorp.call(myContext, "myObj");
/* var myObj = createVcorp.call(myContext); // или так */
/* createVcorp.call(myContext); // или так */
В результате, в переданном контексте (например, в родительском окне), будет существовать собственная переменная-объект VcorpJS и копия ссылки на него в myObj
Инициализация VcorpJS
Перед использованием некоторых свойств и функций-плагинов созданного объекта VcorpJS - его необходимо инициализировать.
Инициализация происходит автоматически, если в момент готовности документа к отображению (событие DOMContentLoaded) объект уже создан.
По-умолчанию (первый листинг - немедленно-вызываемая функция в исходном коде страницы) так и происходит, более того - у созданного, но пока не-инициализированного объекта существует функция (метод) - VcorpJS.ready( handler ) - переданная пользовательская функция handler вызывается сразу после инициализации.
Если коротко, то по-умолчанию мы можем сделать так:
(function (...) {
...
})("$");
$.ready( function(){
alert("Страница загружена и отображена");
});
var $; /* или так (переменная $ может быть глобальной или локальной) */
...
function vcorpJS_onload(version) {
$ = VcorpJS;
$.wAlert("Сообщение", "Страница загружена и отображена", 400, 100);
};
Вместо $ используйте любую переменную, которую захотите.
Все функции, добавленные через .ready(), будут вызваны в порядке их добавления при готовности страницы (событие DOMContentLoaded), но первой будет всегда вызвана пользовательская функция vcorpJS_onload(version), если она в этот момент существует (с передачей текстовой строки version).
Если-же мы подгружаем VcorpJS после события DOMContentLoaded (во время работы страницы), или создаём объект в родительском окне (или фрейме), то перед любым использованием свойств и функций (методов) объекта VcorpJS необходимо вызвать функцию инициализации:
VcorpJS.init();
/* myObj.init(); // или так - если у нас есть копия ссылки на объект (myObj === VcorpJS) */
Повторные вызовы метода .init() игнорируются, если объект уже инициализирован. Версию VcorpJS можно получить в виде текстовой строки через вызов .gVersion()
Нельзя менять созданную по-умолчанию переменную VcorpJS - она необходима при работе плагинов (вызов обработчиков из HTML-кода создаваемых объектов), а так же модулей-расширений для VcorpJS, или для проверки уже созданного объекта.