diff --git a/core/misc/ajax.js b/core/misc/ajax.js index b63bc03..c16b8de 100644 --- a/core/misc/ajax.js +++ b/core/misc/ajax.js @@ -900,21 +900,6 @@ var new_content_wrapped = $('
').html(response.data); var new_content = new_content_wrapped.contents(); - // For legacy reasons, the effects processing code assumes that - // new_content consists of a single top-level element. Also, it has not - // been sufficiently tested whether attachBehaviors() can be successfully - // called with a context object that includes top-level text nodes. - // However, to give developers full control of the HTML appearing in the - // page, and to enable Ajax content to be inserted in places where DIV - // elements are not allowed (e.g., within TABLE, TR, and SPAN parents), - // we check if the new content satisfies the requirement of a single - // top-level element, and only use the container DIV created above when - // it doesn't. For more information, please see - // https://www.drupal.org/node/736066. - if (new_content.length !== 1 || new_content.get(0).nodeType !== 1) { - new_content = new_content_wrapped; - } - // If removing content from the wrapper, detach behaviors first. switch (method) { case 'html': @@ -951,6 +936,20 @@ if (new_content.parents('html').length > 0) { // Apply any settings from the returned JSON if available. settings = response.settings || ajax.settings || drupalSettings; + // For legacy reasons, the effects processing code assumes that + // new_content consists of a single top-level element. Also, it has not + // been sufficiently tested whether attachBehaviors() can be successfully + // called with a context object that includes top-level text nodes. + // However, to give developers full control of the HTML appearing in the + // page, and to enable Ajax content to be inserted in places where DIV + // elements are not allowed (e.g., within TABLE, TR, and SPAN parents), + // we check if the new content satisfies the requirement of a single + // top-level element, and only use the container DIV created above when + // it doesn't. For more information, please see + // https://www.drupal.org/node/736066. + if (new_content.length !== 1 || new_content.get(0).nodeType !== 1) { + new_content = new_content.parent(); + } Drupal.attachBehaviors(new_content.get(0), settings); } },