0

複数のページで processing.js を使用すると問題が発生します。

jqueryを介してすべてのページを「contentarea」という名前のdivにロードするマスターページ(test.html)があります。これは「test.html」の抜粋にすぎません。

<script type="text/javascript" src="http://code.jquery.com/jquery-latest.js"></script>  
<script src="js/processing.js"></script>
<script> 
$(document).ready(function(){$("#contentarea").load("page1.html");
etc...
</script>
<div id="contentarea">...</div>

ご覧のとおり、Test.html には処理参照 "src="js/processing.js"" が含まれており、独自のページ ("test.html" - only ) で静的な "canvas data-processing-sources" をインターセプトします。

page1.html が test.html に読み込まれると、processing.js はキャンバスを初期化しません。しかし、ページ (page1.html) を単独で表示すると、processing.js は "canvas data-processing-sources" をインターセプトし、正常に読み込まれます。

問題の実際の例を次に示します。

http://78revelationscom.ipage.com/site/test/test.html

質問:

動的にロードされるキャンバスを初期化 (または再初期化、リフレッシュ、またはロード) する processing.js を取得するにはどうすればよいですか?

前もって感謝します!

4

1 に答える 1

0

ライブラリでは次のバージョンまで解決されないため、これはまだ問題になる可能性があります。今のところ、解決策は Processing の自動読み込みに依存しないことです。これは DOMContentLoaded イベントでのみ発生するためです。代わりに、ページ コンテンツを変更するときに、キャンバスの data-processing-sources 属性を取得して、指定されたソース コードから新しい Processing インスタンスを作成できます。

function loadSketchOnContentSwap() {
    var canvas = /* get the relevant canvas however you want */
    var sources = canvas.getAttribute("data-processing-sources").split(/\s+/);
    Processing.loadSketchFromSources(canvas, sources);
}
于 2012-07-07T15:24:18.213 に答える