Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > JavaScript > Bibliothèques & Frameworks > jQuery
jQuery Forum d'entraide sur le framework jQuery. Avant de poster : Tutoriels jQuery, FAQ jQuery, Tous les tutoriels JavaScript, Toutes les FAQ 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 07/04/2011, 17h49   #1
Invité de passage
 
Homme
Inscription : avril 2011
Messages : 3
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : avril 2011
Messages : 3
Points : 0
Points : 0
Par défaut Appel Ajax d'un morceau de code HTML contenant une balise Script

Bonjour à tous, j'ai une question qui semble simple mais apparemment difficile à réaliser, et je ne trouve pas de réponse à ma question en parcourant le forum :-(

Quelle serait la meilleure manière de faire, pour récupérer dans une page A, une partie html d'une page B qui contiendrait un script javascript ?

Un exemple :

pageA.htm
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
 
  <script type="text/javascript">
      $().ready(function() {
          $.ajax({
              type: 'GET',
              url: 'pageB.htm',
              success: function(data) {
                  // data = ma page entière, avec ma balise script.
                  var contenu = $("#divPageB", data).html(); // ici, si je ne veux récupérer dans la page B que la partie qui m'intéresse, je perd ma balise script :-(
                  $('#divPageA').html(contenu);
              },
              error: function(data) {
                  alert('La page cible ne répond pas');
              }
          });
      });
  </script>
 
  <div id="divPageA"></div>
pageB.htm
Code :
1
2
3
4
5
 
  <div id="divPageB">
      ...du html ici...
      <script type="text/javascript"> ...du code javascript ici... </script>
  </div>
Merci de vos lumières.
infocp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/04/2011, 20h27   #2
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
le js ne sera pas interprété dans le html retourné il faut l'extraire de la reponse et l'évaluer

Code :
1
2
3
4
5
6
var response = data;
var extrScript = /\<script.*?>(.*)<\/script>/mg;
htmlrep = response.replace(reScript, function(html,myscript) {
    eval(myscript); // lancement du script 
});
alert(htmlrep);
on recupère d'un coté html avec le code html uniquement
et de l'autre le contenu de la balise script que l'on evalue
__________________
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 07/04/2011, 23h32   #3
Membre chevronné
 
Avatar de Montor
 
Inscription : avril 2008
Messages : 762
Détails du profil
Informations forums :
Inscription : avril 2008
Messages : 762
Points : 643
Points : 643
Code :
1
2
3
 
<script src="lien">
<script>
Montor est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/04/2011, 08h52   #4
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
???
Oui Montor ?
Quel est le rapport ?

A part de signaler que d'avoir besoin d'importer une portion de javascript par ajax dans un ensemble de code html est un defaut de conception au départ ...
__________________
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 13/04/2011, 18h50   #5
Invité de passage
 
Homme
Inscription : avril 2011
Messages : 3
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : avril 2011
Messages : 3
Points : 0
Points : 0
Merci pour votre aide. Mais je n'ai pas réussi à récupérer simplement la partie qui m'intéresse de la page 2, je récupère toute la page !?
infocp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/04/2011, 19h26   #6
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
Je pensais que mes variables étaient nommées assez explicitement


Code :
1
2
3
4
5
6
var response = data;
var extrScript = /\<script.*?>(.*)<\/script>/mg;
htmlrep = response.replace(reScript, function(html,myscript) {
    eval(myscript); // lancement du script 
});
alert(htmlrep);
myscript est le code js contenu des balises script dans le data
htmlrep est le code html ...
__________________
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 14/04/2011, 00h03   #7
Invité de passage
 
Homme
Inscription : avril 2011
Messages : 3
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : avril 2011
Messages : 3
Points : 0
Points : 0
Si, si, j'avais bien saisi, c'était très explicite.
Mais peut-être ne suis-je pas très doué, tout simplement
infocp 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 04h18.


 
 
 
 
Partenaires

Hébergement Web