Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > JavaScript
JavaScript Forum programmation JavaScript. Lire : Cours JavaScript, FAQ JavaScript, Toutes les FAQ JavaScript et Sources JavaScript
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 15/03/2011, 18h47   #1
Invité de passage
 
Inscription : mars 2011
Messages : 2
Détails du profil
Informations forums :
Inscription : mars 2011
Messages : 2
Points : 0
Points : 0
Par défaut Récupérer une valeur retournée par une url

Bonjour,

Je cherche à récupérer une valeur retournée par une url pour la mettre dans une variable.

En détail, j'utilise un service distant qui vérifie l’existence ou pas d'une adresse mail dans une base.
Ca marche par variable d'url :
Code :
http://mon_service.com/?email=toto_AT_toto.com
et là, l'url renvoie OK ou NOK (c'est ce qui s'affiche dans mon navigateur lorsque j'entre l'url).

--> je cherche à stocker ce OK ou NOK dans une variable javascript...

Je ne suis pas développeur, juste bricolo Est-ce simple à faire, et si oui comment ?

Merci pour votre aide...
Math77 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/03/2011, 19h18   #2
Membre Expert
 
Avatar de Loceka
 
Tlouye Ci
Inscription : mars 2004
Messages : 1 450
Détails du profil
Informations personnelles :
Nom : Tlouye Ci

Informations forums :
Inscription : mars 2004
Messages : 1 450
Points : 2 149
Points : 2 149
Tu peux essayer avec des iframes : tu charges la page dans l'iframe et tu récupères le contenu de la page (ça c'est la partie chiante parce qu'avec toute la politique de sécurité concernant les frames/iframes y'a plein de trucs qu'on ne peut pas faire).
Loceka est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/03/2011, 19h27   #3
Invité de passage
 
Inscription : mars 2011
Messages : 2
Détails du profil
Informations forums :
Inscription : mars 2011
Messages : 2
Points : 0
Points : 0
Citation:
Envoyé par Loceka Voir le message
Tu peux essayer avec des iframes : tu charges la page dans l'iframe et tu récupères le contenu de la page (ça c'est la partie chiante parce qu'avec toute la politique de sécurité concernant les frames/iframes y'a plein de trucs qu'on ne peut pas faire).
Merci... par contre, je ne sais pas faire ça
Peux-tu me mettre sur une piste stp (liste des fonctions utilisées) ?
merci pour ton aide
Math77 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/03/2011, 19h32   #4
Membre Expert
 
Avatar de Willpower
 
Homme Boris Dessy
sans emploi
Inscription : décembre 2010
Messages : 854
Détails du profil
Informations personnelles :
Nom : Homme Boris Dessy
Localisation : Belgique

Informations professionnelles :
Activité : sans emploi

Informations forums :
Inscription : décembre 2010
Messages : 854
Points : 1 354
Points : 1 354
Citation:
Envoyé par Loceka Voir le message
Tu peux essayer avec des iframes : tu charges la page dans l'iframe et tu récupères le contenu de la page (ça c'est la partie chiante parce qu'avec toute la politique de sécurité concernant les frames/iframes y'a plein de trucs qu'on ne peut pas faire).
effectivement si c'est du cross-domain, il va avoir du mal avec les iframe et encore plus avec l'ajax (xhr). la solution détournée est de passer par un script dans ce genre là :

Code :
1
2
3
4
5
6
7
8
var s = document.createElement("script");
s.onload = function(){ // onload ou pour ie onreadystatechange ... ou un truc du genre
  var data = s.innerText || s.text(); // un truc du genre 
  document.getElementsByTagName("head")[0].removeChild(s);
  traitement(data); // ta fonction ici
}
s.src = 'http://mon_service.com/?email=toto_AT_toto.com';
document.getElementsByTagName("head")[0].appendChild(s);

edit: voici le code de jquery :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
script = document.createElement( "script" );
 
				script.async = "async";
 
				if ( s.scriptCharset ) {
					script.charset = s.scriptCharset;
				}
 
				script.src = s.url;
 
				// Attach handlers for all browsers
				script.onload = script.onreadystatechange = function( _, isAbort ) {
 
					if ( !script.readyState || /loaded|complete/.test( script.readyState ) ) {
 
						// Handle memory leak in IE
						script.onload = script.onreadystatechange = null;
 
						// Remove the script
						if ( head && script.parentNode ) {
							head.removeChild( script );
						}
 
						// Dereference the script
						script = undefined;
 
						// Callback if not abort
						if ( !isAbort ) {
							callback( 200, "success" );
						}
					}
				};
				// Use insertBefore instead of appendChild  to circumvent an IE6 bug.
				// This arises when a base node is used (#2709 and #4378).
				head.insertBefore( script, head.firstChild );
Willpower est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/03/2011, 19h36   #5
Rédacteur/Modérateur
 
Avatar de SpaceFrog
 
Homme
Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Inscription : mars 2002
Messages : 30 007
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Royaume-Uni

Informations professionnelles :
Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Secteur : Industrie

Informations forums :
Inscription : mars 2002
Messages : 30 007
Points : 45 091
Points : 45 091
ajax ?
__________________
Ma page Developpez
Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
Votre post est résolu ? Alors n'oubliez pas le Tag


réalisations :www.planet-languages.com|www.saftair.com| www.ouestisol.fr | www.sebemex.fr | www.extramiante.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr
SpaceFrog est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/03/2011, 19h47   #6
Membre Expert
 
Avatar de Loceka
 
Tlouye Ci
Inscription : mars 2004
Messages : 1 450
Détails du profil
Informations personnelles :
Nom : Tlouye Ci

Informations forums :
Inscription : mars 2004
Messages : 1 450
Points : 2 149
Points : 2 149
pour la création de l'iframe c'est simple, tu peux la mettre dans ta page de départ :
Code html :
1
2
3
4
<body>
<!-- ... -->
<iframe style="display:none" id="resultat" src="ta_page_cible"></iframe>
</body>

Ensuite pour changer l'url de l'iframe c'est simple aussi :
Code :
1
2
var monIframe = document.getElementById("resultat");
monIframe.setAttribute("src", "une_autre_page_cible");
Après c'est là que ça devient complexe et faudra que tu tatonnes (ou qu'un autre membre gentil fasse le travail pour toi).
Déjà faut que tu attendes que la page ait terminé de charger, donc faut probablement connaître le contenu (code source) de la page pour déterminer en fonction des éléments chargés si la page a terminé ou non car je doute que tu puisses ajouter/modifier un attribut de la page (genre le onload qui serait bien utile ici).

Pour accéder au contenu (à l'équivalent du "document" dans une page standard) de ton iframe tu peux procéder comme suit :
Code :
var contenu = monIframe.contentWindow.document || monIframe.contentDocument;
Une fois que tu as ça, tu peux théoriquement (hors restrictions de sécurité donc) utiliser toutes les fonctions javascript. En pratique (d'après ce dont je me rappelle) tu ne peux rien modifier après il faut voir si tu peux accéder aux éléments. Si c'est le cas tu as ce que tu souhaites.
Loceka est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/03/2011, 19h51   #7
Membre Expert
 
Avatar de Willpower
 
Homme Boris Dessy
sans emploi
Inscription : décembre 2010
Messages : 854
Détails du profil
Informations personnelles :
Nom : Homme Boris Dessy
Localisation : Belgique

Informations professionnelles :
Activité : sans emploi

Informations forums :
Inscription : décembre 2010
Messages : 854
Points : 1 354
Points : 1 354
Citation:
Envoyé par Loceka Voir le message
pour la création de l'iframe c'est simple, tu peux la mettre dans ta page de départ :
Code html :
1
2
3
4
<body>
<!-- ... -->
<iframe style="display:none" id="resultat" src="ta_page_cible"></iframe>
</body>

Ensuite pour changer l'url de l'iframe c'est simple aussi :
Code :
1
2
var monIframe = document.getElementById("resultat");
monIframe.setAttribute("src", "une_autre_page_cible");
Après c'est là que ça devient complexe et faudra que tu tatonnes (ou qu'un autre membre gentil fasse le travail pour toi).
Déjà faut que tu attendes que la page ait terminé de charger, donc faut probablement connaître le contenu (code source) de la page pour déterminer en fonction des éléments chargés si la page a terminé ou non car je doute que tu puisses ajouter/modifier un attribut de la page (genre le onload qui serait bien utile ici).

Pour accéder au contenu (à l'équivalent du "document" dans une page standard) de ton iframe tu peux procéder comme suit :
Code :
var contenu = monIframe.contentWindow.document || monIframe.contentDocument;
Une fois que tu as ça, tu peux théoriquement (hors restrictions de sécurité donc) utiliser toutes les fonctions javascript. En pratique (d'après ce dont je me rappelle) tu ne peux rien modifier après il faut voir si tu peux accéder aux éléments. Si c'est le cas tu as ce que tu souhaites.
je pense qu'en cross-domain tu ne peux pas accèder au contenu... même pas en lecture seule. sauf p-e sous un navigateur (ie ou firefox). (me souviens plus trop, mais je suis quasi certain que c'est impossible au moins sur l'un des 2).
Willpower est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/03/2011, 08h04   #8
Membre Expert
 
Avatar de Loceka
 
Tlouye Ci
Inscription : mars 2004
Messages : 1 450
Détails du profil
Informations personnelles :
Nom : Tlouye Ci

Informations forums :
Inscription : mars 2004
Messages : 1 450
Points : 2 149
Points : 2 149
Moui c'est bien ce que je redoutais pour avoir fait quelques tests à une époque.

Sinon le plus simple serait de récupérer le contenu de la page côté serveur (donc en PHP, Java, ...) en utilisant les facilités du langage (fopen pour PHP) et ensuite de faire de l'ajax - ou une solution par iframe mais tant qu'à faire autant passer par l'ajax - sur le contenu récupéré par ton serveur.

Bien entendu ça présuppose d'avoir un serveur.

Ceci dit, si tu veux juste savoir si le mail est bon ou non sans afficher quelque chose de spécial sur ta page, tu peux te contenter de charger la page distante dans l'iframe sans mettre le display:none.
Loceka est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/03/2011, 08h14   #9
Rédacteur/Modérateur
 
Avatar de SpaceFrog
 
Homme
Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Inscription : mars 2002
Messages : 30 007
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Royaume-Uni

Informations professionnelles :
Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Secteur : Industrie

Informations forums :
Inscription : mars 2002
Messages : 30 007
Points : 45 091
Points : 45 091
http://khayyam.developpez.com/articl...-cross-domain/
__________________
Ma page Developpez
Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
Votre post est résolu ? Alors n'oubliez pas le Tag


réalisations :www.planet-languages.com|www.saftair.com| www.ouestisol.fr | www.sebemex.fr | www.extramiante.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr
SpaceFrog est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 18h51.


 
 
 
 
Partenaires

Hébergement Web