Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 11.03.2023, 11:54
Новичок на форуме
Отправить личное сообщение для Анатолий1984 Посмотреть профиль Найти все сообщения от Анатолий1984
 
Регистрация: 11.04.2020
Сообщений: 6

События на форму после подгрузки.
Добрый день

Подгружаю форму кросброузерно аяксом. После подгрузки подключается скрипт
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'); только после подгрузки формы.

Другими словами проверять что форма аяксом подгружена и только после этого подключать и запускать скрипт


Как то так
Ответить с цитированием
  #2 (permalink)  
Старый 11.03.2023, 12:01
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,108

Анатолий1984,
строку 36 перенести в конец строки 29
Ответить с цитированием
  #3 (permalink)  
Старый 11.03.2023, 12:02
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,743

Ну так и вызывайте функцию addScript в обработчике события xhr.onload.
Только нужно еще ловить событие onload скрипта и onsole.log('ddfdfdfdf'); вызывать после загрузки скрипта.
Ответить с цитированием
  #4 (permalink)  
Старый 11.03.2023, 12:08
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,108

Сообщение от Анатолий1984
Другими словами проверять что форма аяксом подгружена и только после этого подключать и запускать скрипт
медитировать тут
Ответить с цитированием
  #5 (permalink)  
Старый 11.03.2023, 14:59
Новичок на форуме
Отправить личное сообщение для Анатолий1984 Посмотреть профиль Найти все сообщения от Анатолий1984
 
Регистрация: 11.04.2020
Сообщений: 6

Спасибо. Буду разбираться
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
свойства объекта события Morr123 Элементы интерфейса 3 10.08.2016 06:36
Не работает JS после подгрузки div через ajax BoB AJAX и COMET 3 09.12.2011 03:03
Передача параметров в колбэки и дальнейшее их вешанье на события. Gremlin Общие вопросы Javascript 17 13.08.2011 08:54
Как вызвать событие после события определенного в onchange Наталья Events/DOM/Window 2 12.09.2009 13:51
Drug&Drop + всплывание события = проблемы =(( _NoName_ Events/DOM/Window 4 05.03.2009 17:47