IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Afficher body d'une page html placer entre Div (ASP.net c#)


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Octobre 2015
    Messages
    98
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2015
    Messages : 98
    Par défaut Afficher body d'une page html placer entre Div (ASP.net c#)
    Bonjour,
    Je souhaite placer une page wikipedia dans le Div d'une de mes page Web.

    Je précise que le web scraping est autoriser par wikipedia (donc rien d'illégal la dedans) et que je préfère afficher une page qui n'est pas de moi en l'état (moyennant quelques modification d'ordre esthétique) plutôt que de faire un copier/coller du texte et faire croire que je suis cultivé

    J'ai utiliser un script java très simple et qui fonctionne très bien pour afficher la page entière dans mon Div "tartare"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
            <div class="row" id="tartare">
     
     
            </div>
         <script type='text/JavaScript'>
            try {
            var xml = new ActiveXObject("Microsoft.XMLHTTP");
            xml.Open( "GET", "https://fr.wikipedia.org/wiki/Ch%C3%A8vre", false );
            xml.Send()
            document.getElementById("tartare").innerHTML = xml.responseText;
            }
            catch (e) {
            var xml = new ActiveXObject("MSXML2.XMLHTTP.4.0");
            xml.Open( "GET", "https://fr.wikipedia.org/wiki/Ch%C3%A8vre", false );
            xml.Send()
            document.getElementById("tartare").innerHTML = xml.responseText;
            }
    </script>
    </div>
    Je voulais savoir si il était possible de rendre ce script un peu plus abouti en affichant uniquement le body de la page par exemple (sans le navigateur et autre bricole) et le moyen d’insérer l'url dynamiquement via le code behind de la page ASP.net.

    Je ne sais pas si il existe un tuto sur le moyen de mettre en page du code html aspirer mais si ça existe j'achete !

    Dernière précision je code habituellement en C# et je suis vraiment un gros noob en javascript. Je l'utilise très ponctuellement un piochant du code tous fait sur le net (c'est pas bien ) donc d’avance pardon si je comprend pas tous ce que vous m'expliqué .

    bonne nuit

  2. #2
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 207
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 207
    Par défaut
    Bonjour,
    as tu essayé de passer par la version imprimable qui est bien plus light ?

    Concernant ta fonction Ajax j'ai bien peur que cela ne suffise pas à être crossbrowsers
    Les technologies d'Ajax.

  3. #3
    Membre confirmé
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Octobre 2015
    Messages
    98
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2015
    Messages : 98
    Par défaut
    bonne idée pour la version imprimable !
    mon CCS se charge de la mise en forme couleur etc en plus Je vais test .

    Je pensais aussi partir sur une iframe niveau code behind ça a l'air plus simple via du c# mais visiblement la iframe c'est "le mal", du coup j'hésite.... Vous en pensez quoi ? JS ou Iframe ?

    Par contre c'est quoi crossbrowsers ? Pour ma culture G


    merci de ton aide

  4. #4
    Membre confirmé
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Octobre 2015
    Messages
    98
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2015
    Messages : 98
    Par défaut
    J'ai tester la version imprimable de wikipedia.
    Le résultat est inattendu...

    voici les 2 page:
    https://fr.wikipedia.org/wiki/Ch%C3%A8vre

    qui s'affiche dans mon navigateur
    "https://fr.wikipedia.org/wiki/Chèvre"
    https://fr.wikipedia.org/wiki/Ch%C3%A8vre

    et la version imprimable:
    https://fr.wikipedia.org/w/index.php...&printable=yes

    qui s'affiche dans la barre de mon navigateur comme ceci
    "https://fr.wikipedia.org/w/index.php?title=Chèvre&printable=yes"
    https://fr.wikipedia.org/w/index.php...&printable=yes

    Si je le test sur une iframe , la page imprimable s'affiche, sans la mise en page CSS de ma page.
    Si je test avec ma fonction dans une DIV, la page qui s'affiche est la version non imprimable??? (et avec par contre la mise en page h1, h2 color... de ma page ce qui est plutôt cool).

    Quelqu'un aurait une idée sur cette impossibilité de charger la bonne page alors que le lien est bien celui de la page imprimable ?

    merci de votre aide

  5. #5
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 207
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 207
    Par défaut
    Par contre c'est quoi crossbrowsers ? Pour ma culture G
    simplement ton code ne fonctionnera que sur IE et encore les versions qui gèrent le ActiveX.

    Le mieux dans ton cas est quand même de faire cela coté serveur, tu récupères le contenu du site et tu en extrait le code qui t’intéresse avant de le renvoyer coté serveur prêt à l'emploi.

    Il existe WebRequest, classe

  6. #6
    Membre confirmé
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Octobre 2015
    Messages
    98
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2015
    Messages : 98
    Par défaut
    j'ai fait tous comme tu m'a dit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <div class="row" runat="server" id="boubou">    
            <asp:Panel ID="Panel1" runat="server" CssClass="toutou">            
            </asp:Panel>
    </div>
    avec le code CSS de ma page qui va bien .
    et le code behind
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    protected void Page_Load(object sender, EventArgs e)
            {
                WebRequest request = WebRequest.Create("https://fr.wikipedia.org/w/index.php?title=Ch%C3%A8vre&printable=yes#Syst.C3.A9matique");
                WebResponse response = request.GetResponse();
                Stream dataStream = response.GetResponseStream();
                StreamReader reader = new StreamReader(dataStream);
                string responseFromServer = reader.ReadToEnd();
     
                this.Panel1.GroupingText = responseFromServer;               
                reader.Close();
                response.Close();          
            }
    La page s'affiche au poil.
    2 problème cependant:

    -1) c'est toujours la page standard wikipedia que je recupere et jamais la page imprimable malgré le bon url (c'est codé en PHP, peut etre que....? j'en sais rien)
    -2) Je souhaite récupérer juste une partie de la page (la partie texte) <div id="mw-content-text" lang="fr" dir="ltr" class="mw-content-ltr"> mais le html agility pack censé le faire ba je comprend pas la façon de l'integrer a mon code behind...

    Si je pouvais avoir un peu d'aide. Ou déplacer le sujet par un moderateur car il n'est plus vraiment dans le sujet JS

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 03/04/2015, 11h01
  2. charger une page html dans un div
    Par mantalo dans le forum jQuery
    Réponses: 2
    Dernier message: 16/06/2010, 12h41
  3. [RegEx] Extraire le code entre les balises <body> d'une page html
    Par abousa3d dans le forum Langage
    Réponses: 5
    Dernier message: 19/05/2010, 10h35
  4. Afficher image sur une page html via c
    Par Relyss dans le forum Réseau
    Réponses: 3
    Dernier message: 17/12/2009, 11h40
  5. [RegEx] Récupérer le contenu du <body> d'une page HTML
    Par lOeil dans le forum Langage
    Réponses: 4
    Dernier message: 15/08/2009, 22h49

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo