diff --git a/core/misc/ajax.es6.js b/core/misc/ajax.es6.js index 950e9c582c..e0f6355113 100644 --- a/core/misc/ajax.es6.js +++ b/core/misc/ajax.es6.js @@ -1620,6 +1620,8 @@ add_js(ajax, response) { const deferred = $.Deferred(); + const parentEl = document.querySelector(response.selector || 'body'); + const settings = ajax.settings || drupalSettings; const scriptsSrc = response.data.map((script) => { // loadjs requires a unique ID, AJAX instances' `instanceIndex` are // guaranteed to be unique. @@ -1628,16 +1630,11 @@ loadjs(script.src, uniqueBundleID, { async: !!script.async, before(path, scriptEl) { - let selector = 'body'; - if (response.selector) { - selector = response.selector; - } if (script.defer) { scriptEl.defer = true; } // To avoid synchronous XMLHttpRequest on the main thread and break // load dependency, it should not use jQuery. - const parentEl = document.querySelector(selector); if (response.method === 'insertBefore') { parentEl.insertBefore(scriptEl, parentEl.firstChild); } @@ -1652,6 +1649,7 @@ }); loadjs.ready(scriptsSrc, { success() { + Drupal.attachBehaviors(parentEl, settings); deferred.resolve(); }, }); diff --git a/core/misc/ajax.js b/core/misc/ajax.js index 1700824e1f..37da5c271d 100644 --- a/core/misc/ajax.js +++ b/core/misc/ajax.js @@ -679,20 +679,17 @@ function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr }, add_js: function add_js(ajax, response) { var deferred = $.Deferred(); + var parentEl = document.querySelector(response.selector || 'body'); + var settings = ajax.settings || drupalSettings; var scriptsSrc = response.data.map(function (script) { var uniqueBundleID = script.src + ajax.instanceIndex; loadjs(script.src, uniqueBundleID, { async: !!script.async, before: function before(path, scriptEl) { - var selector = 'body'; - if (response.selector) { - selector = response.selector; - } if (script.defer) { scriptEl.defer = true; } - var parentEl = document.querySelector(selector); if (response.method === 'insertBefore') { parentEl.insertBefore(scriptEl, parentEl.firstChild); } else { @@ -706,6 +703,7 @@ function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr }); loadjs.ready(scriptsSrc, { success: function success() { + Drupal.attachBehaviors(parentEl, settings); deferred.resolve(); } });