2011-11-19 59 views
18

我目前正在構建一個應該能夠作爲ftp類瀏覽器的網站。基本上我所擁有的是一臺帶有一些圖像的ftp服務器。Javascript將html從url讀入字符串

我無法弄清楚的是:如果我瀏覽到這個ftp站點,我可以查看ftp站點的源代碼(如在某些瀏覽器中看到的),我需要的是以某種方式保存該源代碼字符串(使用JavaScript)。

原因是,我會做一些'圖像'瀏覽器。我打算通過將源文件讀入字符串來完成該操作,然後複製所有圖像源並使用innerHTML創建新佈局。

簡而言之:我想從網址讀取信息並以不同的方式顯示它。


好吧,似乎無法讓它工作。問題可能是我無法使用服務器端腳本。是否有可能把一個文件放在FTP服務器上,我可以加載它可以動態地將數據加載到同一文件夾中? (當我說FTP時,我實際上是指具有FTP訪問權限的NAS服務器)。

+0

您在使用任何類型的框架? I.E. jQuery的? – vzwick

+0

「如果我瀏覽到這個ftp站點,我可以查看ftp站點的源代碼」 - 你看到的是瀏覽器根據目錄列表生成的一些HTML,你不知道站點本身發送了什麼。 – Quentin

回答

28

你的答案是阿賈克斯。它可以從URL發佈和獲取數據,就像瀏覽網站一樣,它將以字符串形式返回HTML作爲結果。

如果您打算使用jQuery(真正方便),它很容易使用Ajax。像這樣examle(不無庫工作):

$.ajax({ 
    url : "/mysite/file.html", 
    success : function(result){ 
     alert(result); 
    } 
}); 

如果您想使用默認的Javascript,看看http://www.w3schools.com/ajax/default.asp

var xmlhttp; 
if (window.XMLHttpRequest) { // code for IE7+, Firefox, Chrome, Opera, Safari 
    xmlhttp = new XMLHttpRequest(); 
} 
else { // code for IE6, IE5 
    xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); 
} 
xmlhttp.onreadystatechange = function() { 
    if (xmlhttp.readyState == 4 && xmlhttp.status == 200) { 
     document.getElementById("myDiv").innerHTML = xmlhttp.responseText; 
    } 
} 
xmlhttp.open("GET", "ajax_info.txt", true); 
xmlhttp.send(); 
+0

那麼我提出的解決方案是用C#編寫一個小應用程序。當您運行應用程序時,它會進入NAS文件夾,查找圖像並生成一個html文件(包含圖像),然後我的應用程序就可以在iframe中使用該html頁面。 – Chizpa

1

由於以前的答案說明使用是可能的HTTP和CORS ,但我想你想看看this other thread

0

在JavaScript中獲取數據,而無需使用警報():

$.ajax({ 
    url : "/mysite/file.html", 
    async:false,   //this is the trick 
    success : function(result){ 
       //does any action 
       } 
    }); 
+3

你介意多解釋一下嗎? – Micho