Frage

Hallo, ich versuche, den großen Syntaxhighlighter in eine ASP .NET -Seite einzufügen, aber jedes Mal, wenn er einen Fehler hat, der mit der Aufschrift "DP ist undefiniert" hat.

Ich denke, dass es zum Rufteil kommt, bevor es die Skripte herunterlädt. Wie kann ich sicherstellen, dass die Dateien vor dem Fortsetzung geladen werden?

Vielen Dank

Doron

Bearbeiten: Dies ist der Code, den ich in meiner ASPX -Datei verwende. Er funktioniert einwandfrei wie normale HTML, aber wenn ich versuche, in einer ASPX -Datei zu verwenden, heißt es: "DP ist undefiniert".

<link type="text/css" rel="stylesheet" href="App_Data/Styles/SyntaxHighlighter.css"></link>
    <script type="text/javascript" src="App_Data/Scripts/shCore.js"></script> 
    <script type="text/javascript" src="App_Data/Scripts/shBrushCpp.js"></script> 
    <script type="text/javascript" src="App_Data/Scripts/shBrushCSharp.js"></script> 
    <script type="text/javascript" src="App_Data/Scripts/shBrushCss.js"></script> 
    <script type="text/javascript" src="App_Data/Scripts/shBrushJava.js"></script> 
    <script type="text/javascript" src="App_Data/Scripts/shBrushJScript.js"></script> 
    <script type="text/javascript" src="App_Data/Scripts/shBrushPhp.js"></script> 
    <script type="text/javascript" src="App_Data/Scripts/shBrushPython.js"></script> 
    <script type="text/javascript" src="App_Data/Scripts/shBrushRuby.js"></script> 
    <script type="text/javascript" src="App_Data/Scripts/shBrushSql.js"></script> 
    <script type="text/javascript" src="App_Data/Scripts/shBrushXml.js"></script>
        <script type="text/javascript"> 
        window.onload = function() {
            dp.SyntaxHighlighter.ClipboardSwf = 'http://aaron-mueller.de/vendor/dp_syntax_highlighter/Scripts/clipboard.swf';
            dp.SyntaxHighlighter.HighlightAll('code');
        }
    </script> 
War es hilfreich?

Lösung

Wenn Sie Skripte in die richtige Reihenfolge bringen, sollte alles gut funktionieren:

<script src=".../highlighter.js"></script> 
<script>   
   highlighter.doAnything();
</script>

Aber es kann passieren, dass der Highlighter die injiziertu003Cscript> tags himselves, and in this case Jakub's solution should help: perform everything on document load.

Benutze das eine oder das andere

window.onload = function(){highlighter.doAnything();}

Ereignis oder (wenn JQuery verwendet)

$(function(){ 
   highlighter.doAnything();
});

Andere Tipps

Legen Sie den Anrufteil innen

$(function(){
 // your code goes here
})

Wenn Sie JQuery verwenden

Die HTML -Seite wird nacheinander in der Zeile ausgeführt. Deshalb, wenn Sie eine haben

<script src="Something.js"></script>

Auf Ihrer Seite müssen Sie sicherstellen, dass kein Code versucht, dies anzurufen, bevor Sie den Loader treffen. Bei einem dynamischen Laden von JavaScript -Dateien gibt es normalerweise einen Injektionspunkt, an dem Sie Ihren Rückruf einfügen können, wenn das Laden abgeschlossen ist.

Wenn alles andere fehlschlägt, können Sie die Ausführung jederzeit mit SetTimeout mit einer bestimmten Zeit verschieben, die Sie der Meinung sind, dass die Skripte vollständig geladen werden sollten.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top