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 :

SyntaxHighlighting sur windows.open


Sujet :

JavaScript

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    49
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2007
    Messages : 49
    Points : 34
    Points
    34
    Par défaut SyntaxHighlighting sur windows.open
    hello

    je voudrais appliquer à posteriori la fonction SyntaxHighlighter.all() sur une window ouverte sur un onclick, dont le contenu a été modifié. en grous ouvrir un fichier du site avec coloration syntaxique dans une nouvelle fenêtre, rien de méchant.

    la fenêtre OpenWindow est construite à partir d'un template relatif à l'url du site, et contient une balise avec id à modifier. Je fais cela avec $.get(theUrl, function(dataUrl) {}

    J'arrive bien à créer une nouvelle fenêtre avec le contenu du template, et à modifier la balise.
    Le problème c'est la fonction SyntaxHighlighter.all() qui
    - soit ne s'applique pas
    - soit revert le contenu modifié de la balise

    voilà la fonction qui marche :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    function brushThis(filename) {
      var theTemplateUrl=encodeURI('http://' + window.location.host + '/CV/' + "template.html");
      var theUrl=encodeURI('http://' + window.location.host + '/CV/' + filename);
      var OpenWindow = window.open(theTemplateUrl);
      OpenWindow.onload = function(){
        preToBrush = this.document.getElementById("preToBrush");
        $.get(theUrl, function(dataUrl) {
          preToBrush.innerHTML = dataUrl;
        });
        OpenWindow.onload = OpenWindow.SyntaxHighlighter.all();
      };
    }
    et voilà le template:

    Code html : 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
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN"
    "http://www.w3.org/TR/html4/frameset.dtd">
    <!-- http://htmlhelp.com/tools/validator/doctype.html -->
    <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
     
    <head>
    <script type="text/javascript" src="http://cdnjs.cloudflare.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script>
    <script type="text/javascript" src="http://cdnjs.cloudflare.com/ajax/libs/SyntaxHighlighter/3.0.83/scripts/shCore.js"></script>
    <script type="text/javascript" src="http://cdnjs.cloudflare.com/ajax/libs/SyntaxHighlighter/3.0.83/scripts/shBrushJScript.js"></script>
    <link rel="stylesheet" type="text/css" href="http://cdnjs.cloudflare.com/ajax/libs/SyntaxHighlighter/3.0.83/styles/shCore.css">
    <link rel="stylesheet" type="text/css" href="http://cdnjs.cloudflare.com/ajax/libs/SyntaxHighlighter/3.0.83/styles/shThemeDefault.css">
    </head>
     
    <body>
     
    <pre id="preToBrush" class="brush: js">
    //empty
    var aa='bb';
    </pre>
     
    </body>
    </html>

    et on l'appelle comme ceci:
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href="javascript:void(0)" onclick="brushThis('path/fileToShow.js'); return false;">clickme</a>

    j'ai mis 10mn à faire créer le code fonctionnel avec la modif de la balise, mais passé plus de 5 heures sur le post-apply de la fonction de highlight.
    rien à faire, quand la fonction passe le texte récupéré disparaît et je ne comprend pas pourquoi.

    besoin d'aiiiideuuuuuuu plzzzzz

  2. #2
    Rédacteur/Modérateur

    Avatar de SylvainPV
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    3 375
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 3 375
    Points : 9 944
    Points
    9 944
    Par défaut
    Un lien vers la librairie en question aurait été utile...

    https://github.com/alexgorbatchev/SyntaxHighlighter
    c'est celle là ?


    sans trop réfléchir ni connaître la librairie, tu as essayé ça ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     $.get(theUrl, function(dataUrl) {
          preToBrush.innerHTML = dataUrl;
          OpenWindow.SyntaxHighlighter.all();
        });
    One Web to rule them all

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    49
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2007
    Messages : 49
    Points : 34
    Points
    34
    Par défaut
    oui c'est bien celle la

    et oui j'ai aussi essayé ça mais ça ne marche pas.

    en plus quand on regarde le code source de la page qui affiche bien le nouveau code (non traité, donc), on constate qu'il est identique à la page originale.

    ça donne l'impression que quoi que l'on applique à OpenWindow àa s'applique au code original et pas à celui modifié.

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    49
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2007
    Messages : 49
    Points : 34
    Points
    34
    Par défaut
    FOUND !

    la réponse était : OpenWindow.SyntaxHighlighter.highlight();

    j'ai trouvé ça par hasard sur stackoverflow. Les pages d'aide de SyntaxHighlighter ne sont pas d'une grande aide

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

Discussions similaires

  1. bug window.open sur ie7
    Par pchelp59 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 18/03/2009, 13h13
  2. [OpenOffice] problème d'installation de open office sur windows 98
    Par floche88 dans le forum OpenOffice & LibreOffice
    Réponses: 3
    Dernier message: 26/05/2008, 11h41
  3. window.open sur un cgi
    Par Photon- dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 14/11/2007, 21h39
  4. Erreur sur un window.open lors du deuxième appel
    Par Mike_69 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 02/04/2007, 09h40
  5. Probleme sur window.open
    Par iceman2001 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 24/07/2006, 17h42

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