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 24/08/2011, 14h52   #1
Invité régulier
 
Inscription : janvier 2008
Messages : 56
Détails du profil
Informations forums :
Inscription : janvier 2008
Messages : 56
Points : 6
Points : 6
Par défaut Ouverture d'une page dynamique

Bonjour à tous,

J'ai parcouru la FAQ, mais avec son aide et mon niveau relativement réduit en javascript, je n'ai pas trouvé de solution, ainsi je m'en réfère à vous.

J'ai un site web comprenant un bouton censé faire appel à une servlet. L'appel se fait correctement, et ma servlet me renvoie un contenu (un xml, mais que je veux considérer comme une page web pour l'afficher).

Je fais comme ça :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
 
xmlhttp.onreadystatechange  = handleServerResponse;
xmlhttp.open("GET", args.url, true);
xmlhttp.send(null);
 
et
 
function handleServerResponse() {
   if (xmlhttp.readyState == 4) {
     if(xmlhttp.status == 200) {
         alert(xmlhttp.responseText);
 
       //window.location=xmlhttp.responseText; 
     }
     else {
        alert("Error");
     }
   }
J'ai une réponse correct, et dans responseText j'ai bien le texte attendu. Maintenant, j'aimerai ouvrir un pop up pour visualiser ces infos, qui sont propres à chaque requête.

Malheureusement quand j'essaie d'utiliser window.location, ça colle en fait mon texte derrière mon url, et j'ai du coup une mauvaise adresse. L'idée n'est pas de m'en tenir à un alert, mais bien d'ouvrir une page qui contiendra le résultat de la requête.

J'imagine que je dois pouvoir mettre mon texte dans un objet "url" ou quelque chose dans ce genre, puis demander son affichage, mais je ne trouve pas, quelqu'un saurait m'aider ?
cyscek est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/08/2011, 15h02   #2
Membre actif
 
Homme
Développeur informatique
Inscription : août 2008
Messages : 69
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : août 2008
Messages : 69
Points : 150
Points : 150
L'utilisation correcte de window.location pour basculer sur une page consiste à charger une URL, pas un contenu "maison". Et ça marche ainsi :
Code :
window.location.href = "http://mon_url"
Ce qu'il te faut, c'est ouvrir (avec cette méthode, ou plutôt, dans ton cas, un bon vieux window.open()) l'URL d'une page où tu pourras injecter le contenu que tu as préalablement récupéré.
MonsieurSmith est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/08/2011, 15h08   #3
Invité régulier
 
Inscription : janvier 2008
Messages : 56
Détails du profil
Informations forums :
Inscription : janvier 2008
Messages : 56
Points : 6
Points : 6
J'ai songé à ça, mais ce que je ne vois pas c'est comment transformer mon contenu, enfin l'écrire dans un fichier pour après taper sur l'url.
cyscek est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/08/2011, 15h29   #4
Membre actif
 
Homme
Développeur informatique
Inscription : août 2008
Messages : 69
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : août 2008
Messages : 69
Points : 150
Points : 150
Non, il s'agirait plutôt de :
- conserver dans une variable le résultat de ta requête AJAX (le "contenu") ;
- ouvrir l'URL d'une page que tu as préalablement créée à cet effet (vraisemblablement une page HTML vierge) ;
- dans ce document ainsi ouvert, injecter (avec les fonctions DOM, par exemple) le résultat de ta requête AJAX.
MonsieurSmith est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/08/2011, 15h53   #5
Invité régulier
 
Inscription : janvier 2008
Messages : 56
Détails du profil
Informations forums :
Inscription : janvier 2008
Messages : 56
Points : 6
Points : 6
Je vois le genre, même si je ne sais pas comment faire l'injection. Cependant, si je dois mettre à jour cette page, que se passera-t-il en cas d'accès concurrent ? Car j'imagine que je vais déposer ma page vierge sur mon serveur, mais si deux personnes font une requête en même temps, ça va être problématique non ?
cyscek est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/08/2011, 09h10   #6
Invité régulier
 
Inscription : janvier 2008
Messages : 56
Détails du profil
Informations forums :
Inscription : janvier 2008
Messages : 56
Points : 6
Points : 6
J'ai "presque" résolu mon problème. Si je fais en javascript :

Code :
window.location=args.url;
directement sur l'url de la servlet, et que cette dernière me renvoie le jnlp, j'ai bien une demande de lancement du jnlp. En l'acceptant, le jnlp se lance correctement sur firefox et IE9.

Cependant, sur IE8, j'ai un bandeau d'alerte qui s'affiche en haut du browser, pour dire :

"Pour protéger votre sécurité, internet explorer à bloqué le téléchargement de fichiers de ce site vers votre ordinateur"

Si je met de le télécharger, la page se recharge mais le téléchargement ne s'effectue pas. Je suis obligé de cliquer une seconde fois (cette fois je n'ai pas le bandeau d'alerte) et là le jnlp est correctement téléchargé. Comment puis-je fais pour avoir le téléchargement dès le premier coup ?
cyscek 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 08h22.


 
 
 
 
Partenaires

Hébergement Web