在 window.open 之后获取 html 代码

Fetching html code after window.open

本文关键字:html 代码 获取 之后 window open      更新时间:2023-09-26

我正在尝试在窗口加载window.open后获取窗口的HTML代码

但它实际上不起作用。我想问题是关于我如何管理我的加载功能,但我不明白这里的问题,我的控制台中没有显示任何内容.log(我没有错误)

我的网页代码 :

<html>
    <head>
        <script type="text/javascript" src="js/ftp.js"></script>
        <script type="text/javascript" src="js/jquery-1.11.0.js"></script>
        <title>FTPtoolJS</title>
    </head>
    <body bgcolor='#ffffff'>
    <p><table border='0' cellpadding='0' cellspacing='1'
              align='center' width='98%'>
        <form name=login>
            <tr><td align='right'>&nbsp;Username&nbsp;</td>
                <td>&nbsp;<input type='text'
                                 name='username' value='username' size='20'
                                 maxlength='20'>&nbsp;&nbsp;</td></tr>
            <tr><td align='right'>&nbsp;Password&nbsp;</td>
                <td>&nbsp;<input type='text'
                                 name='password' value='**********' size='20'
                                  maxlength='20'>&nbsp;&nbsp;</td></tr>
            <tr><td align='right'>&nbsp;Server&nbsp;</td>
                <td>&nbsp;<input type='text'
                                 name='server' value='ftp.adresse.com' size='60'
                                 maxlength='120'>&nbsp;&nbsp;</td></tr>
            <tr><td align='right'>&nbsp;Directory&nbsp;</td>
                <td>&nbsp;<input type='text'
                                 name='directory' size='60'
                                 maxlength='200'>&nbsp;&nbsp;</td></tr>
        </form>
    </table><hr>
    <table border='0' cellpadding='0' cellspacing='0' width='100%'>
        <tr>
            <td align='right'>
                <input style='color:#000000' type='button' value='Connect' onClick='Login(this.form)'>
            </td>
        </tr>
    </table>
    </body>
</html>

我的JS代码:

function Login(form) {
    var username = form.username.value;
    var password = form.password.value;
    var server = form.server.value;
    var directory = form.directory.value;
    if (username && password && server) {
        FTPConnect(username, password, server, directory);
    }
    else {
        alert("error");
    }
}
function FTPConnect(username, password, server, directory){
    var url;
    var w;
    if(directory != undefined){
        url = "ftp://" + username + ":" + password + "@" + server + "/" + directory;
        w = window.open("ftp://" + username + ":" + password + "@" + server + "/" + directory, '_blank',
            'toolbar=yes,location=yes,status=yes,' +
                'scrollbars=auto,copyhistory=no,menubar=no,width='
                + ((screen.AvailWidth/2)-12) + ',height='
                + (screen.AvailHeight-124) +',left=' + ((screen.AvailWidth/2))
                + '),top=0,resizable=yes');
    }
    else {
        url = "ftp://" + username + ":" + password + "@" + server;
        w = window.open("ftp://" + username + ":" + password + "@" + server, '_blank',
            'toolbar=yes,location=yes,status=yes,' +
                'scrollbars=auto,copyhistory=no,menubar=no,width='
                + ((screen.AvailWidth/2)-12) + ',height='
                + (screen.AvailHeight-124) +',left=' + ((screen.AvailWidth/2))
                + '),top=0,resizable=yes');
    }
    w.onload = function() {
        console.log(w.documentElement.outerHTML); //here nothing is displayed in console.log
    }
}

快速浏览一下您的代码,以下内容突出

w = window.open("ftp://" + username + ":" + password + "@" + ...

这将无法通过同源策略测试,因为

  1. 协议不匹配
  2. 看起来server也可能是不同的主机

在这种情况下,您也无法通过 CORS 启用支持,因为访问窗口XMLHttpRequest 更严格,因为它不会查找权限标头。


看起来用户名和密码不会使源测试失败