【问题标题】:Javascript: detect loading order of JS librariesJavascript:检测 JS 库的加载顺序
【发布时间】:2012-01-01 13:58:44
【问题描述】:

我有一个加载了 Jquery 和 Prototype 的页面。 (我不知道顺序,无法控制这个页面)

<script type="text/javascript" src="jquery-1.4.4.min.js"></script>
<script type="text/javascript" src="prototype.js"></script>

<script type="text/javascript" src="prototype.js"></script>
<script type="text/javascript" src="jquery-1.4.4.min.js"></script>

稍后在同一页面中,我可以嵌入自己的代码。我需要知道加载这两个库的顺序。例如,如果先加载原型库,则执行此操作,否则执行此操作。

如何使用 jQuery 或纯 javascript 做到这一点?

【问题讨论】:

  • 为什么哪个是第一个很重要?您可以等待文档准备好,或者简单地获取数组中的所有脚本元素,然后循环确定哪个是 javascript 最先出现的。如果重要的是哪个先加载,那么您不想使用 jQuery,而是使用纯 javascript。
  • 也许如果你能解释为什么顺序很重要,你会得到更好的答案

标签: javascript jquery prototypejs conflict


【解决方案1】:

如果您需要防止 jQuery 和原型之间的冲突,那么它们的加载顺序无关紧要:

jQuery.noConflict(); //will return $ to what it had been before jQuery was added
(function ($) {
  //jQuery aliased to $ for use within anonymous closure
}(jQuery));

jQuery(function ($) {
  //jQuery aliased to $ for use within $(document).ready shortcut
});

【讨论】:

  • 我不知道您的情况如何,但是在加载原型库后,我页面上的原型代码不起作用在 jquery lib 和 jQuery.noConflict() 之后调用。我自己也在玩这个,发现了加载顺序问题。您可以在此处查看更多信息:docs.jquery.com/Using_jQuery_with_Other_Libraries,然后向下滚动到“在其他库之前包含 JQUERY”
【解决方案2】:

这应该会有所帮助;

    if (jQuery === $) {
        alert("jQuery later");
    }
    else {
        alert("Prototype later");
    }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-09-06
    • 2014-05-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-28
    • 2015-10-15
    相关资源
    最近更新 更多