2012-04-10 65 views
0

我已經制作了一個處理草圖,我希望將其包含在我的博客中。如何使用jQuery的getScript運行processing.js

像這樣的建議方式工作得很好:

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

我只是想,如果有一個頁面上的草圖加載processingjs,我想做到這一點使用jQuery的getScript加入。但是,當我運行此代碼:

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

處理草圖將不會呈現。應該不需要回調,因爲處理將自行運行。我的網絡檢查員顯示該文件已加載,但我看不到草圖。

+0

你能給我們發一個小提琴嗎? – 2012-04-10 08:54:15

+0

無法讓它在小提琴上工作,這是一個工作版本(使用html腳本):http://mikevanrossum.nl/stuff/temp/working.html這裏是一個不工作的(使用getScript): http://mikevanrossum.nl/stuff/temp/not-working.html – askmike 2012-04-10 09:15:23

回答

0

Flöcsy的建議並沒有爲我工作。看來,無論何時我ajax腳本我需要指定加載草圖的腳本(而不是腳本只是搜索它們)。這是我現在使用的代碼:

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

processing.js是否有可能以document.ready之後無法加載的方式構建? (只是這種不好的做法的一個例子是使用document.write),所以當它包含在html中時,它會起作用,但是如果稍後加載它,它不會起作用嗎?如果您添加腳本碰巧你自己添加標籤:

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

這也不起作用,但我找到了答案:不知何故,您需要使用Processing函數自己加載它。這是我現在使用: $ .getScript( 「processingjs.js」,函數(){ \t \t \t \t \t $()每個(函數(){ \t \t \t \t \t \t '草圖。'。 Processing.loadSketchFromSources(此,[$(本)。數據( '處理來源')]); \t \t \t \t \t}); \t \t \t \t}); – askmike 2012-04-10 10:11:59