Я только что несколько часов боролся с этой проблемой и, наконец, нашел решение, которое, я думаю, поможет вам.
Вот упрощенная версия кода, которая вызвала у меня проблемы:
$frames = $(*html_including_frames_here*);
$div = $('<div></div>');
$div.append($frames);
$('body').append($div);
** Загрузка одного или нескольких кадров в div, который НЕ находится в DOM, и ТО, загрузка этого div в DOM, вызывает все проблемы в моих случаях. Кадры не загружают JS-скрипты так, как должны, и тогда все (jQuery, JSON и т. Д.) Не определено.
Это, с другой стороны, работает:
$frames = $(*html_including_frames_here*);
$div = $('<div></div>');
$('body').append($div);
$div.append($frames);
Единственная разница здесь в том, что я сначала помещаю div в dom, а затем загружаю в него фреймы. Каким-то образом это все меняет.