Замените один HTML-тег другим
Всякий раз, когда создается сообщение ajax, возвращается полная страница с HTML 4 doctype, но я хочу отобразить эту страницу на текущей. Есть также некоторые сценарии в теге head этой возвращаемой страницы, которые завернуты в document. ready, что означает, что мои возможности ограничены
$.parseHTML
то есть они должны выполняться всякий раз, когда новый документ полностью загружен. Ниже приведен текущий код, который я используюЧто я уже пробовал:
$.post('tet.php', {key: JSON.stringify(payload)}, function(res) { // res truly returns a full page var newPage = $.parseHTML($.trim(res), null, true).find(function (e) { try { return e.matches('#container'); // this is the one tag I'm interested in } catch (e) { return false; } }); $('body').replaceWith(newPage); // errors originate from this line });
Теперь приведенный выше код продолжает выбрасывать всевозможные ошибки, вращающиеся вокруг отсутствия
documentFragment
или отсутствует clientWidth
и т.д. Как мне выбрать этот элемент и загрузить его в DOM, все еще имея возможность выполнить скрипт в его теге head? Если это невозможно, то как я могу удалить текущий документ и установить возвращенный?