【问题标题】:yepnope.js - problem with scripts on same pageyepnope.js - 同一页面上的脚本问题
【发布时间】:2011-04-10 11:24:47
【问题描述】:

我包含了 yepnope.js,然后是以下内容:

<script type="text/javascript"> 
/*<![CDATA[*/
    yepnope([{
      load: 'http://ajax.googleapis.com/ajax/libs/jquery/1.5.2/jquery.min.js',
      complete: function () {
        if (!window.jQuery) {
          yepnope('local/jquery.min.js');
        } ...

但是,当 jquery 从 cdn 加载时,页面末尾的以下脚本显示错误:

/*<![CDATA[*/
jQuery(function($) {
jQuery('#Project_projectDateStart').datepicker({'dateFormat...

错误是没有定义jQuery

我别无选择,只能在最后加载脚本(在本例中加载了 Yii datepicker)。

非常感谢任何帮助。

【问题讨论】:

  • 简单的解决方案 - 见我的博文Here

标签: jquery yii modernizr yepnope


【解决方案1】:

如果你要使用yepnope,你需要使用回调函数。您不能直接调用 jQuery,因为它是异步加载的。解析 yepnopejs.com 上的文档有点困难,但这就是要点。

据我所知,基本上,Yii 的默认 AJAX 和其他 JS 助手都不会与 yesope 一起工作。或者如果它们确实有效,那将是因为除了从 Google 加载的 yepnope async 之外,Yii 还包含另一个 jQuery 副本。您可能需要做大量工作来修改 Yii 加载脚本的方式,以使其与 yepnope 之类的异步加载器一起正常工作。

祝你好运!异步加载器非常适合页面性能,我一直使用 Facebook 的。

【讨论】:

  • 谢谢。我想知道 Yii js 是否通过单独的文件而不是在 POS_END 处插入,这会有什么不同。会继续寻找。
  • 无论 Yii JS 插入到什么位置(include 文件通常在 HEAD 并且绑定通常在 END 中),Yii 直接调用 jQuery(或 $),yepnope 的工作方式你不能这样做是因为 jQuery 仅加载在该异步命名空间中。我认为你必须对 Yii 脚本管理器进行相当认真的重写才能使用 yepnope。干杯!
猜你喜欢
  • 1970-01-01
  • 2013-11-21
  • 1970-01-01
  • 1970-01-01
  • 2013-04-15
  • 1970-01-01
  • 1970-01-01
  • 2016-07-20
  • 2012-06-27
相关资源
最近更新 更多