【问题标题】:How to run processing.js using jQuery's getScript如何使用 jQuery 的 getScript 运行 processing.js
【发布时间】:2012-04-10 08:37:59
【问题描述】:

我已经制作了一个处理草图,我想将它包含在我的博客中。

推荐的方法可以正常工作:

<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>

处理草图不会被渲染。应该不需要回调,因为处理会自行运行。我的网络检查器显示文件已加载,但我没有看到草图。

【问题讨论】:

标签: jquery processing processing.js getscript


【解决方案1】:

是否有可能 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);

【讨论】:

  • 这也行不通,但是我找到了答案:不知何故,您需要使用处理函数自己加载它。这就是我现在使用的: $.getScript("processingjs.js", function() { $('.sketch').each(function() { Processing.loadSketchFromSources(this, [$(this).data(')处理源')]); }); });
【解决方案2】:

Flöcsy 的建议对我不起作用。看来,每当我 ajax 脚本时,我都需要指定脚本来加载草图(而不是只搜索它们的脚本)。这是我现在使用的代码:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-07
    • 1970-01-01
    • 2018-06-29
    相关资源
    最近更新 更多