События на форму после подгрузки.
Добрый день
Подгружаю форму кросброузерно аяксом. После подгрузки подключается скрипт 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, время: 14:11. |