События на форму после подгрузки.
Добрый день
Подгружаю форму кросброузерно аяксом. После подгрузки подключается скрипт
var wrgsv = {
// идентификатор HTML элемента в который будет размещен виджет
idBox: 'wrgsv',
// путь до страницы возвращающей виджет
url_wiget: 'https://мойсайт/widget.php',
// путь до страницы стилей виджета
url_style: 'https://мойсайт/widget.css',
url_script: 'https://мойсайт/js.js',
// метод инициализации виджета
init: function(id) {
// если идентификатор отсутствует, то будем использовать
// идентификатор HTML элемента для размещения виджета по умолчанию (т.е. "wrgsv")
if (!id) { id = this.idBox; }
if (document.getElementById(id)) {
// подключаем стили виджета
this.addStyle();
try {
// для кросс-доменного запроса создаем один из ниже указанных объектов
var XHR = ("onload" in new XMLHttpRequest())?XMLHttpRequest:XDomainRequest;
// создаем экземпляр объекта
var xhr = new XHR();
// запрос на другой домен (асинхронный)
xhr.open('GET', this.url_wiget, true);
// событие отслеживает, что запрос был успешно завершён
xhr.onload = function() {
// если существует ответ
if (this.response) {
// добавляем полученный ответ в HTML элемент
document.getElementById(id).innerHTML = this.response;
}
}
xhr.onerror = function() { console.log('onerror '+this.status); }
// отсылаем запрос
xhr.send();
} catch(e) {}
this.addScript();
}
// если на странице не существует HTML элемента с указаным идентификатором
// выводим сообщение: блок с идентификатором id="id" отсутствует
else { console.log('The specified block id="'+id+'" is missing'); }
},
// метод подключения стилей виджета
addStyle: function() {
style = document.createElement('link');
style.rel = 'stylesheet';
style.type = 'text/css';
style.href = this.url_style;
document.head.appendChild(style);
},
addScript: function() {
style = document.createElement('script');
style.src = this.url_script;
document.head.appendChild(style);
},
};
куском кода подключается скрипт https://мойсайт/js.js
addScript: function() {
style = document.createElement('script');
style.src = this.url_script;
document.head.appendChild(style);
},
следующего содержания
document.addEventListener('DOMContentLoaded', function () {
console.log('ddfdfdfdf');
});
в консоле 'ddfdfdfdf' отображается через раз В общем надо запускать console.log('ddfdfdfdf'); только после подгрузки формы. Другими словами проверять что форма аяксом подгружена и только после этого подключать и запускать скрипт Как то так |
Анатолий1984,
строку 36 перенести в конец строки 29 |
Ну так и вызывайте функцию addScript в обработчике события xhr.onload.
Только нужно еще ловить событие onload скрипта и onsole.log('ddfdfdfdf'); вызывать после загрузки скрипта. |
Цитата:
|
Спасибо. Буду разбираться
|
| Часовой пояс GMT +3, время: 22:05. |