Pregunta

Sé JavaScript puede abrir un enlace en una nueva ventana, pero es posible abrir una página web sin necesidad de abrirlo en una ventana o mostrarla al usuario? Lo que quiero hacer es analizar esa página web de algún texto y lo utilizan como variables.

¿Es esto posible sin ninguna ayuda de lenguajes del lado del servidor? Si es así, por favor me envía en una dirección que puedo lograr esto.

Gracias a todos

¿Fue útil?

Solución

Puede utilizar un XMLHttpRequest objeto de hacer esto. Aquí hay un ejemplo simple

var req = new XMLHttpRequest();  
req.open('GET', 'http://www.mydomain.com/', false);   
req.send(null);  
if(req.status == 200)  
   dump(req.responseText);

Una vez cargado, puede realizar su análisis / raspado utilizando javascript expresiones regulares en el miembro de req.responseText.

Más detalles ...

En la práctica lo que necesita hacer un poco más para obtener el objeto XMLHttpRequest de manera multiplataforma, por ejemplo:.

var ua = navigator.userAgent.toLowerCase();
if (!window.ActiveXObject)
  req = new XMLHttpRequest();
else if (ua.indexOf('msie 5') == -1)
  req = new ActiveXObject("Msxml2.XMLHTTP");
else
  req = new ActiveXObject("Microsoft.XMLHTTP");

O utilizar una biblioteca ...

Como alternativa, puede ahorrarse toda la molestia y sólo tiene que utilizar una biblioteca como jQuery o Prototipo para hacerse cargo de esto para usted.

política del mismo origen puede morder aunque ...

Tenga en cuenta que debido a la política del mismo origen , la página que solicitud debe ser del mismo dominio que la página que realiza la solicitud. Si desea solicitar una página remota, tendrá que proxy que a través de un script del lado del servidor.

Otra posible solución es utilizar Flash para realizar la solicitud, que sí permite solicitudes entre dominios si el sitio de destino concede permiso con un archivo crossdomain.xml configurado adecuadamente.

Aquí hay un buen artículo sobre el tema de la política del mismo origen:

Otros consejos

Cualquiera que sea el origen es una biblioteca de código abierto que le permite utilizar puramente Javascript para hacer raspado. También resuelve el problema "del mismo dominio de origen". http://www.whateverorigin.org/

$.getJSON('http://whateverorigin.org/get?url=' + encodeURIComponent('http://google.com') + '&callback=?', function(data){
    alert(data.contents);
});

Se podría utilizar AJAX. Esto haría una solicitud GET a la URL en cuestión y devolver la respuesta HTML. JQuery hace que este muy fácil por ejemplo.

$.get("test.php");

http://docs.jquery.com/Ajax

Andrew

Usted puede abrir la nueva ventana en un iframe:

http://www.w3schools.com/TAGS/tag_iframe.asp

A pesar de que la nota que el acceso está limitado Javascript si el sitio se abre es de un URL diferente. Esto es para prevenir ataques de cross-site scripting:

http://en.wikipedia.org/wiki/Cross-site_scripting

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top