2010-08-26 3 views
1

S'il vous plaît voir le suivant http://valogiannis.com/recent/.J'ai une page Web et lorsque l'utilisateur clique sur le code XHTML un div avec le résultat de l'id charge le contenu d'une page Web (dans ce cas codes/advocasys.html). En fait, ce que je souhaite faire est de mettre en évidence le code html. J'ai lien le css/js nécessaire. J'utilise le SyntaxHighlighter 3.0.83. Ce surligneur doit appeler le SyntaxHighlighter.all() après le tag <pre> (plus d'infos here). Si j'ai le code html dans la même page que je veux mettre en évidence fonctionne bien, mais je ne peux pas le faire fonctionner, lorsque le script charge la page externe advocasys.html. J'ai essayé de mettre leappeler la fonction pour mettre en surbrillance le code

<script type="text/javascript"> 
    SyntaxHighlighter.all() 
</script> 

dans le bas du advocasys.html, mais cela n'a pas fonctionné. Comment puis-je le faire fonctionner?

Merci d'avance.

Répondre

3

L'appel .all() se fixe un gestionnaire d'événements à window.load qui a déjà eu lieu, utilisez plutôt .highlight(), comme ceci:

SyntaxHighlighter.highlight(); 
+0

wow c'était rapide. Merci mec, vous êtes génial. merci encore – Sotiris

+0

@Sotiris - welcome :) –

1

Vous devez appeler SyntaxHiglighter dans la fonction de rappel après les données sont renvoyées:

$('#myLink').click(function(){ 
    $('#result').load('codes/advocasys.html', function() { 
     $('#result').show(); 
     $('.scroll-pane').jScrollPane(); 
     SyntaxHighlighter.highlight(); 
    }); 

    return false; 

});

+0

Cette méthode fonctionne aussi, mais le problème n'est pas l'endroit où l'OP l'appelle, c'est l'inefficacité de la fonction '.all()' après 'window.onload' :) –