19 votes

Utiliser l'éclaircisseur de syntaxe sur le contenu chargé en AJAX

Comment puis-je utiliser le Syntax Highlighter d'Alex Gorbatchev sur le contenu chargé après que la 'fenêtre' ait émis l'événement 'load' ? J'essaie de procéder de la manière suivante :

    $.ajax({
        url:    file,
        success: function(data) {
            $('.fileName').text(file);
            $('#fileSource > pre').text(data);
            SyntaxHighlighter.all();
        }
    });

... mais cela ne fonctionne pas. Je dois mentionner que l'appel ajax peut se produire à n'importe quel moment après le chargement de la page.

Salutations

41voto

Kasper Rasmussen Points 411

- SyntaxHighlighter.all() lie le chargement de la fenêtre. Par conséquent, si vous souhaitez mettre en évidence un élément lors du chargement de la page, utilisez cette méthode.

- SyntaxHighlighter.highlight() met en évidence les éléments chaque fois que vous appelez cette méthode. Il est donc préférable de l'utiliser.

- SyntaxHighlighter.highlight() prend deux paramètres, tous deux facultatifs.

1. Paramètres globalParams :

@param {Object} globalParams, Paramètres facultatifs qui remplacent les paramètres de l'élément. Ils ne sont utilisés que si l'élément est spécifié.

2. Paramètres élément :

@param {Object} element, Élément facultatif à mettre en évidence. Si aucun élément n'est fourni, tous les éléments du document actuel sont mis en évidence.

-Pour plus d'informations à ce sujet, consultez le site suivant syntaxhighlighter_3.0.83/src/shCore.js

5voto

J'ai trouvé la réponse à ma question dans l'un de ses exemples :

    $.ajax({
        url:    file,
        success: function(code) {
            $('.fileName').text(file);
            var brush = new SyntaxHighlighter.brushes.JScript(),
                html;
            brush.init({ toolbar: false });
            html = brush.getHtml(code);
            document.getElementById('source').innerHTML = html; 
        }
    });

-1voto

SYSMAN Points 3

Il suffit d'ajouter cette section

$(document).ready(function () {
        $('.code').each(function () {
            SyntaxHighlighter.all();
        });
    });

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X