2011-11-19 22 views
18

Actualmente estoy construyendo un sitio que debería poder funcionar como un tipo de navegador ftp. Básicamente lo que tengo es un servidor ftp con algunas imágenes.Javascript lee html de url en la cadena

Lo que no puedo entender es: si navego a este sitio ftp puedo ver el origen del sitio ftp (como se ve en algunos navegadores), lo que necesito es guardar esa fuente de una forma cadena (usando javascript).

La razón es que voy a hacer algún tipo de navegador de 'imagen'. Planeo lograr eso leyendo la fuente en una cadena, luego copio todas las fuentes de imagen y uso innerHTML para crear una nueva disposición.

En resumen: quiero leer información de una url y mostrarla de otra manera.


Bueno, parece que no funciona. El problema podría ser que no puedo usar scripts de servidor. ¿Sería posible, sin embargo, poner un archivo en el servidor ftp que pueda cargar y que cargue dinámicamente los datos en la misma carpeta? (cuando digo FTP me refiero a un servidor NAS con acceso FTP).

+0

¿Está utilizando cualquier tipo de marco? ES DECIR. jQuery? – vzwick

+0

"si navego a este sitio ftp puedo ver el origen del sitio ftp": lo que ve es un poco de HTML generado por el navegador basado en la lista del directorio, no ve lo que el sitio envía. – Quentin

Respuesta

28

su respuesta es Ajax. Puede POSTAR y OBTENER datos de una URL, al igual que navegar un sitio web, y devolverá el HTML como una cadena como resultado.

Si planea usar jQuery (muy útil), es fácil de usar Ajax. Al igual que este examle (no funciona sin la biblioteca):

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

Si desea utilizar por defecto Javascript, echar un vistazo a 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

Bueno, la solución que he encontrado es escribir una pequeña aplicación en C#. Cuando ejecuta la aplicación, ingresa a la carpeta NAS, busca imágenes y genera un archivo html (que contiene las imágenes), luego mi aplicación puede usar esa página html en un iframe. – Chizpa

1

Como las respuestas anteriores han dicho es posible utilizando HTTP y CORS , pero creo que quieres echar un vistazo al this other thread.

0

en javascript para obtener datos sin necesidad de utilizar alerta():

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

¿Te importaría explicar un poco más? – Micho

Cuestiones relacionadas