Как запустить processing.js, используя getQ-файл jQuery

Я сделал эскиз обработки, который хочу включить в свой блог.

Рекомендуемый способ вроде так работает нормально:

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

Я хочу загружать processingjs только в том случае, если на странице есть эскиз, я хотел добиться этого с помощью getScript jQuery. Однако, когда я запускаю этот код:

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

Эскиз обработки не будет обработан. Не должно быть необходимости в обратном вызове, поскольку обработка будет выполняться сама по себе. Мой веб-инспектор показывает, что файл был загружен, но я не вижу эскиз.

2 ответа

Решение

Предложение Flöcsy не работает для меня. Кажется, что всякий раз, когда я ajax сценарий, мне нужно указать сценарий для загрузки эскизов (а не сценарий просто ищет их). Это код, который я использую сейчас:

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

Возможно ли, что processing.js построен таким образом, что его нельзя загрузить после document.ready? (просто примером такой плохой практики было бы использование document.write), чтобы он работал, когда он включен в HTML, а не, если он загружается позже? Что произойдет, если вы добавите тег script самостоятельно:

var script = document.createElement("script");
script.src = "/js/libs/processingjs.js";
var head = document.getElementsByTagName("head")[0];
head.appendChild(script);
Другие вопросы по тегам