Javascript lire contenu page web

Fermé
ponpon - 16 févr. 2006 à 10:20
erysoft Messages postés 42 Date d'inscription jeudi 9 avril 2009 Statut Membre Dernière intervention 14 janvier 2012 - 14 janv. 2012 à 13:26
Bonjour,
encore moi lol est ce que quelqu'un peut me dire coment lire le contenu d'une page web en javascript

Merci d'avance
A voir également:

11 réponses

erysoft Messages postés 42 Date d'inscription jeudi 9 avril 2009 Statut Membre Dernière intervention 14 janvier 2012 5
14 janv. 2012 à 11:41
Salut,

Je suis tombé sur cet article par hasard, et utilisant ce procédés depuis pas mal de temps, je dois vous dire que cela ne fonctionne que SUR le même domaine, et non en crossdomain. Je ne vois pas l'intérêt d'aller lire le code de nos pages html, puisque nous les avons sur le PC ! Enfin, c'est vous qui voyez !

J'utilise la fonction javascript suivante :

function eswd_charger_fichier(fichier, mode)
{
	var requete = null;
	if (mode == undefined || mode == '') mode = false;
	if (window.XMLHttpRequest) requete = new XMLHttpRequest();
	else if (window.ActiveXObject) requete = new ActiveXObject("Microsoft.XMLHTTP");
	else return;
	requete.open('GET', fichier, mode);
	requete.send(null);
	return requete.responseText;
}


Elle est identique à celle déjà proposée, mais je ne fais pas le contrôle de réception.

Pour ce qui est du cossdomain, il est impératif de passer par un proxy PHP, dont voici une exemple (xy.php) :

<?php
	$adresse    = $_GET['adr'];
	$entete     = $_GET['ent'];
	$conversion = $_GET['con'];
	$adresse = str_replace('||','?',$adresse);
	$adresse = str_replace('|||','&',$adresse);
	switch ($entete)
	{
		case 'h' : $adresse = 'http://' . $adresse; break;
		case 's' : $adresse = 'https://' . $adresse; break;
		default  : break;
	}
	$session = curl_init($adresse);
	curl_setopt($session, CURLOPT_HEADER, false);
	curl_setopt($session, CURLOPT_RETURNTRANSFER, true);
	$reponse = curl_exec($session);
	curl_close($session);
	if ($conversion == '1' || strtolower($conversion == 'true'))
	{
		$special   = array('<','>');
		$caractere = array('<','>');
		$reponse = str_replace($special,$caractere,$reponse);
	}
	header("Content-Type : text/xml");
	echo $reponse; 
?>


Pour avoir le code source de cette page, vous faites en javascript:

alert(eswd_charger_fichier('http://www.erysoft.eu/xy.php?adr=www.commentcamarche.net/forum/affich-2098793-javascript-lire-contenu-page-web&ent=h', false));


Vous pouvez essayer ceci :

http://www.erysoft.eu/php/xy.php?adr=www.commentcamarche.net/forum/affich-2098793-javascript-lire-contenu-page-web&ent=h

Dans ce cas, les balises sont opérationnelles. Mais si vous vous ajouter la conversion, vous aurez cela :

http://www.erysoft.eu/php/xy.php?adr=www.commentcamarche.net/forum/affich-2098793-javascript-lire-contenu-page-web&ent=h&con=1

Vous avez vu que la racine http:// ou https:// ne doit pas être présente dans l'adresse, car le serveur va déclarer une erreur. Si l''adresse que vous voulez lire est une fonction php, vous devez remplacer le ? d'origine par ||, et les & par |||.

Amusez-vous bien !
5
erysoft Messages postés 42 Date d'inscription jeudi 9 avril 2009 Statut Membre Dernière intervention 14 janvier 2012 5
14 janv. 2012 à 12:48
$caractere = array('<','>');

Pour des raisons d'affichage il faut remplacer '<' par '& l t ;', et '>' par '& g t ;'
0
erysoft Messages postés 42 Date d'inscription jeudi 9 avril 2009 Statut Membre Dernière intervention 14 janvier 2012 5
14 janv. 2012 à 13:26
Voilà la bonne syntaxe :
$caractere = array('&lt','&gt;');
0