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 :

[DOM] Bufferiser une page html en javascript


Sujet :

JavaScript

  1. #1
    Membre à l'essai
    Inscrit en
    Mars 2008
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 14
    Points : 11
    Points
    11
    Par défaut [DOM] Bufferiser une page html en javascript
    Bonjour
    En java il existe des tag qui m ont permit de bufferiser une page c est a dire recuperer le flux de sortie de la page pour y faire des traitements.
    Quelqu'un aurrais une idee pour faire en faire en javascript??
    Merci

  2. #2
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

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

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 663
    Points
    66 663
    Billets dans le blog
    1
    Par défaut
    Buffersier en javascript ??
    Quel en serait le but ?
    tu peux jouer sur le style visible si c'est une question d'affichage

  3. #3
    Membre émérite
    Inscrit en
    Septembre 2002
    Messages
    2 307
    Détails du profil
    Informations forums :
    Inscription : Septembre 2002
    Messages : 2 307
    Points : 2 814
    Points
    2 814
    Par défaut
    non
    -> fais tes propres traitements avec
    getElementsByTagName
    +css

  4. #4
    Membre à l'essai
    Inscrit en
    Mars 2008
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 14
    Points : 11
    Points
    11
    Par défaut
    je t explike mon probleme.
    J'aimerais grace a un fichier xml contenant des informations un mot traité les mots qui se trouvent dans la page html.
    Donc j aimerais savoir si il existe une fonction ki permettais de d 'interceper le flux avant affichage pour y chercher le mots et ainsi faire les traitements ke je veux

  5. #5
    Membre émérite
    Inscrit en
    Septembre 2002
    Messages
    2 307
    Détails du profil
    Informations forums :
    Inscription : Septembre 2002
    Messages : 2 307
    Points : 2 814
    Points
    2 814
    Par défaut
    Fais le coté serveur, ce sera plus facile.
    Sinon ajax + xsl.

  6. #6
    Membre expert
    Avatar de FremyCompany
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    2 532
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 2 532
    Points : 3 239
    Points
    3 239
    Par défaut
    Tu peux si ta page ne contient pas de document.write(), de HTMLElement.innerHTML=someNewHTML ou de manipulations DOM en général. Tout JavaScript est en fait assez malvenu. Tu peux te permettre ce genre de truc si ta page n'est faite qu'en HTML pur et dur (avec, si tu veux du ASP/PHP coté serveur, mais ca c'est une autre histoire).

    Mais cela veut dire que ta page sera en fait chargée une deuxième fois par le browser... C'est vraiment très crade comme truc, je te conseille vivement de passer par un script serveur.

    Code X : 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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    <html>
        <head>
            <title>xxx</title>
            <script><!--
            window.rewriteHTML = function() {
                // Détection du HTML
                var myDocType = ""; //"<!DOCTYPE html ... !>";
                var HTML = "";
                if (document.documentElement.outerHTML) {
                    HTML = document.documentElement.outerHTML;
                } else {
                    HTML = "<html>"+document.documentElement.innerHTML+"</html>";
                }
                HTML = myDocType + HTML.replace('window.rewriteHTML','window.rewriteHTML2');
                // Traitement
                HTML = HTML.replace(/ne marche pas/gi, "marche");
                // Affichage
                document.write(HTML);
            }
            if (window["rewriteHTML"]) {
                if (window.attachEvent) {
                    window.attachEvent("onload", rewriteHTML);
                } else if (window.addEventListener) {
                    window.addEventListener('load', rewriteHTML);
                } else {
                    window.onload=rewriteHTML;
                }
            }
            --></script>
        </head>
        <body>
            Le texte suivant sera affiché autrement : <br/>
            Ca ne marche pas.<br/><br/>
            
            Ceux-ci vont s'afficher en doublon : <br/>
            <script><!--
                document.write('[1]');
            --></script>
            <span id="span"></span>
            <script><!--
                document.getElementById('span').innerHTML+='[2]';
            --></script>
        </body>
    </html>

  7. #7
    Membre expert
    Avatar de FremyCompany
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    2 532
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 2 532
    Points : 3 239
    Points
    3 239
    Par défaut
    Ici j'ai une version qui marche même avec du JavaScript, mais ca ne marche que si on ajoute
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    type="application/dont-load"
    à toutes les balises Voici le code (ne pas oublier de mettre votre doctype comme valeur de myDocType):
    Code X : 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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    <html>
        <head>
            <title>xxx</title>
            <script><!--
            window.rewriteHTML = function() {
                // Détection du HTML
                var myDocType = ""; //"<!DOCTYPE html ... !>";
                var HTML = "";
                if (document.documentElement.outerHTML) {
                    HTML = document.documentElement.outerHTML;
                } else {
                    HTML = "<html>"+document.documentElement.innerHTML+"</html>";
                }
                HTML = myDocType + HTML.replace('window.rewriteHTML','window.rewriteHTML2').replace(new RegExp("type=(|'|\")application/dont-load(|'|\")","gi"),'type="text/javascript"');
                // Traitement
                HTML = HTML.replace(/ne marche pas/gi, "marche");
                // Affichage
                document.write(HTML);
            }
            if (window["rewriteHTML"]) {
                if (window.attachEvent) {
                    window.attachEvent("onload", rewriteHTML);
                } else if (window.addEventListener) {
                    window.addEventListener('load', rewriteHTML, true);
                } else {
                    window.onload=rewriteHTML;
                }
            }
            --></script>
        </head>
        <body>
            Le texte suivant sera affiché autrement : <br/>
            Ca ne marche pas.<br/><br/>
            
            Ceux-ci risquent s'afficher en doublon : <br/>
            <span id="span1">
                <script type="application/dont-load"><!-- 
                    // Test passed at v2.0
                    document.write('[1]');
                --></script>
            </span>
            <span id="span2"></span>
                <script type="application/dont-load"><!--
                    // Test padded at v3.0
                    document.getElementById('span2').innerHTML+='[2]';
                --></script>
            <span id="span3"></span>
                <script type="application/dont-load"><!--
                    // Test passed at v1.0
                    document.getElementById('span3').innerHTML='[3]';
                --></script>
            <span id="span4">[4]</span>
                <script type="application/dont-load"><!--
                    // Test passed at v3.0
                    document.getElementById('span4').innerHTML=document.getElementById('span4').innerHTML.replace(/\[4\]/g,'[4][5]');
                --></script>
        </body>
    </html>

  8. #8
    Membre expert
    Avatar de FremyCompany
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    2 532
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 2 532
    Points : 3 239
    Points
    3 239
    Par défaut
    Current version works on : IE (6.0 and 7.0 tested), FF (2.0 tested), OPERA (9.20 tested), SAFARI (3.1 tested)

  9. #9
    Expert confirmé
    Avatar de le_chomeur
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2006
    Messages
    3 653
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 3 653
    Points : 4 835
    Points
    4 835
    Par défaut
    Ouai mais je ne vois toujours pas l'intérêt ^^ ...

  10. #10
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

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

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 663
    Points
    66 663
    Billets dans le blog
    1
    Par défaut
    Non plus toujours pas ...
    sinon il y a aussi

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var MonBuffer=document.createDocumentFragment();
    tu colles tout ce que tu veux dedans, tu modifies ensuites ce que tu veux dedans, et une fois fini tu l'appendes au body ...

  11. #11
    Membre expert
    Avatar de FremyCompany
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    2 532
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 2 532
    Points : 3 239
    Points
    3 239
    Par défaut
    L'intérêt, c'est que si tu ne dispose pas de language serveur, tu peux quand même faire des traitements sur ta page.

  12. #12
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

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

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 663
    Points
    66 663
    Billets dans le blog
    1
    Par défaut
    à ce moment là on peut se servir de nimporte quoi comme "Buffer" ...

    Un style display, un style visibility, un createElement ...
    Bref la notion de "buffer" est vaste

  13. #13
    Expert confirmé
    Avatar de le_chomeur
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2006
    Messages
    3 653
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 3 653
    Points : 4 835
    Points
    4 835
    Par défaut
    de plus en général en JAVASCRIPT on effectue les traitements une fois la page générée ...
    et dans la plupart des cas sur une action de l'utilisateur mais bon ...

Discussions similaires

  1. Comment afficher l'arbre du Dom d'une page html ?
    Par Beginner. dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 16/05/2015, 00h08
  2. charger un contenu dans une page html avec javascript
    Par alvine18 dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 23/06/2012, 12h12
  3. charger une page html en javascript
    Par GoldenEyes dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 17/06/2012, 11h49
  4. Réponses: 41
    Dernier message: 03/06/2008, 09h54
  5. Réponses: 3
    Dernier message: 28/12/2005, 15h29

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