Попробуйте:
var html = popup.document.documentElement.outerHTML
EDIT
Окно не загружается сразу. Примерно так будет работать, если предположить, что вы не пытаетесь нарушить политику того же происхождения :
$('#btn').click(function() {
var popup = window.open('[Your URL HERE]', '_blank', 'width=500,height=500');
popup.onload = function() {
setTimeout(function(){ console.log(popup.document.documentElement.outerHTML) }, 2000);
}
});
Вот рабочая скрипка .
Примечание: Если вы управляете как родительским, так и дочерним источником, вы также можете попросить, чтобы дочерний элемент вызвал метод для родителя, который передает его в HTML:
Детское окно
// Call when body is loaded
function SendHtmlToParent() {
window.opener.HtmlReceiver(document.outerHTML);
}
Родитель
function HtmlReceiver(html) {
console.log(html);
}