2014-04-05 62 views
0

我試圖加載後一個窗口window.open擷取之後的HTML代碼window.open

不過,這並不實際工作來獲取一個窗口的HTML代碼。我想這個問題是我如何管理我的onload功能,但我不明白這裏的問題,沒有顯示在我的console.log(我有沒有錯誤)

我的html代碼:

<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 
    } 
} 

回答

1

你的代碼快速瀏覽和下面伸出

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

這將失敗same origin policy測試因爲

  1. 該協議不匹配
  2. 看起來server可能是一個不同的主機,也

在這種情況下,你不能通過CORS啓用支持,因爲訪問窗口XMLHttpRequest更嚴格,因爲它不會尋找許可頭。


它看起來像用戶名密碼&不作原點的測試失敗

+0

謝謝您的回答,我瞭解這裏的問題,是可以管理我想做的事情通過使用HTML網頁FTP ? – AlexDG

+0

您需要位於相同的域,相同的協議和相同的端口:) –