JQuery вставить HTML с помощью скрипта не запускается - PullRequest
0 голосов
/ 23 октября 2019

на некоторых серверах работает только следующий код:

jQuery.get(url, function (response) {
    var wrap = $('<div>').html(response);

    var scripts = [];
    wrap.find('script').each(function () {
    scripts.push(jQuery(this).text());
        jQuery(this).remove();
    });

    modal.find('.modal-body').html(wrap.html());

    jQuery.each(scripts, function (_, script) {
        modal.find('.modal-body').append(jQuery('<script>').html(script));
    });
});

, но следующий код не работает:

jQuery.get(url, function (response) {
    var wrap = $('<div>').html(response);

    modal.find('.modal-body').html(wrap.html());
});

Я провел много исследований, но не могу понятьпочему это так. Так почему же это так?

Обновление (19.10.23. 18:56):

Я выяснил, что если код ожидает открытия модала, тозапускаются сценарии из ответа:

modal.on('shown.bs.modal', function () {
        jQuery.get(url, function (response) {
            var wrap = $('<div>').html(response);
            modal.find('.modal-body').html(wrap.html());
        });
    });

    modal.open();

Это потому, что отклик сервера localhost был медленнее и оставалось время для модального открытия.

Но я до сих пор не понимаю, почему, но, похоже,как сценарии, не запущенные, если модальный еще не открыт.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...