2012-04-10 6 views
0

ausführt Ich habe eine Verarbeitungsskizze gemacht, die ich in meinen Blog aufnehmen möchte.Wie man processing.js mit Hilfe von jQuery's getScript

Die empfohlene Art und Weise, wie so funktioniert:

<script src="js/libs/processingjs.js"></script> 

Ich mag nur processingjs laden, wenn es eine Skizze auf der Seite ist, dass ich dies mit jQuery getScript erreichen wollte. Allerdings, wenn ich diesen Code ausführen:

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script> 
<script> 
    $(function() { 
     $.getScript('js/libs/processingjs.js'); 
    }); 
</script> 

Die Verarbeitung Skizze wird nicht gerendert werden. Es sollte kein Rückruf erforderlich sein, da die Verarbeitung von selbst ablaufen würde. Mein Webinspektor zeigt an, dass die Datei geladen wurde, aber ich sehe die Skizze nicht.

+0

Kannst du uns eine Geige schicken? –

+0

kann es nicht zur Arbeit bei fiddle, hier ist eine funktionierende Version (mit HTML-Skript): http://mikevanrossum.nl/stuff/temp/working.html und hier ist eine nicht funktionierende (mit getScript): http://mikevanrossum.nl/stuff/temp/not-working.html – askmike

Antwort

0

Flöcsys Vorschlag funktioniert nicht für mich. Es scheint, dass jedesmal, wenn ich das Skript ajaxe, ich das Skript angeben muss, um die Skizzen zu laden (anstatt dass das Skript nur nach ihnen sucht). Dies ist der Code, den ich jetzt benutze:

//processing 
if($('.sketch').length) { 
    $.getScript("processingjs.js", function() { 
     $('.sketch').each(function() { 
      Processing.loadSketchFromSources(this, [$(this).data('processing-sources')]); 
     }); 
    }); 
} 
0

Ist es möglich, dass processing.js so aufgebaut ist, dass es nach document.ready nicht geladen werden kann? (Ein Beispiel für solch eine schlechte Übung wäre die Verwendung von document.write), so dass es funktioniert, wenn es im HTML enthalten ist, aber nicht, wenn es später geladen wird? Was passiert, wenn Sie das Skript-Tag selbst hinzufügen:

var script = document.createElement("script"); 
script.src = "/js/libs/processingjs.js"; 
var head = document.getElementsByTagName("head")[0]; 
head.appendChild(script); 
+0

Das funktioniert auch nicht, aber ich fand die Antwort: irgendwie müssen Sie es selbst mit einer Processing-Funktion laden. Dies ist, was ich jetzt: $ .getScript ("processingjs.js", function() { \t \t \t \t \t $() jede (function() { \t \t \t \t \t \t 'Skizze.'. Processing.loadSketchFromSources (this, [$ (this) .data ('Verarbeitung-Quellen')]); \t \t \t \t \t}); \t \t \t \t}); – askmike