如何使用jquery从window.open js函数中获取元素和html

Osc*_*car 6 javascript jquery window.open

我试图打开这样一个弹出窗口:

$('#btn').click(function () {
    var popup = window.open('mypage.php', '_blank', 'width=500,height=500');
    var dom = popup.document.body;
    for (i in dom) {
        console.log(dom[i]);
    }
});
Run Code Online (Sandbox Code Playgroud)

现在我想要做的是从弹出窗口获取html,并且也可以使用window.opener(打开弹出窗口的页面)中的jQuery函数

PS.在控制台中有很多东西打印但没有html源代码.

用它来试试:http://jsfiddle.net/JRqTy/

提前致谢.

Jam*_*ill 5

尝试:

var html = popup.document.documentElement.outerHTML
Run Code Online (Sandbox Code Playgroud)

编辑

该窗口不会立即加载。假设您不尝试违反同源策略,则类似的事情将起作用:

$('#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);
    }  
});?
Run Code Online (Sandbox Code Playgroud)

是工作中的小提琴

注意:如果您同时控制父源和子源,则还可以让子在传递其html的父上调用一个方法:

子窗口

// Call when body is loaded
function SendHtmlToParent() {
    window.opener.HtmlReceiver(document.outerHTML);
}
Run Code Online (Sandbox Code Playgroud)

父级

function HtmlReceiver(html) {
    console.log(html);
}
Run Code Online (Sandbox Code Playgroud)