javascript - 为什么我的自定义模块在 YUILoader.onSuccess 事件触发后不可用?

标签 javascript html yui yui2

尝试编写更好的 JavaScript,哇哦!

对我来说第一步:YUILoader 依赖加载器,这样我的所有自定义代码都可以在可靠的时间点使用。

我当前的环境:

  • YUI (2.8.1) 库路径:C:\wamp\www\lib\js\yui\2\build\(http://localhost/lib/js/yui/2/build/)
  • 位于上述位置的所有 YUI min 文件、调试文件和原始文件
  • 自定义库路径:C:\wamp\www\lib\js\(http://localhost/lib/js/)
  • 自定义模块“fln-min.js”位于上述位置
  • 在 Chrome 中测试

注释:

下面是我的示例 HTML 页面,我的自定义模块遵循 HTML 代码。还没有 CSS 或任何时髦的东西,我只是想让它作为概念证明。如果您运行我的代码,您将看到两个 onSuccess 事件均触发,但在嵌套回调中数据为空,并且我的自定义模块似乎不可用。我尝试了一些东西,比如路径串联,因此第一个 YUILoader 实例中的“base”,以及第二个 YUILoader 实例中注释掉的第二个“fullpath”。

演示 HTML 页面:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
 <head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  <title>External file Loader</title>
  <script src="/lib/js/yui/2/build/yuiloader/yuiloader-min.js"></script>
  <script>
   new YAHOO.util.YUILoader({

    base: '/lib/js/yui/2/build/',
    require: ['yahoo-dom-event'],
//    require: ['yahoo-dom-event','reset-fonts-grids','container'],
//    allowRollup: true,
//    combine: true,

    onSuccess: function() {

     alert('YAHOO: '+YAHOO);

     var loader = new YAHOO.util.YUILoader();
     //
     loader.addModule({
      name:'FLN',
//      varName:'FLN',
      type:'js',
      fullpath:'/lib/js/fln-min.js'
//      fullpath:'../../../fln-min.js'
     }); 
     loader.onSuccess = function(o) {
      // 
      alert('o.data: '+YAHOO.lang.dump(o.data));
      alert('FLN: '+FLN);
      //
     };
     loader.onFailure = function(o) {
      // 
      alert('Error: '+YAHOO.lang.dump(o));
      //
     };
     loader.insert();
    }

   }).insert();
  </script>
 </head>
 <body>
  <div id="output"></div>
 </body>
</html>

自定义模块(fln-min.js):

var FLN = function(){

 var _debug = false ;
 var _masterDebug = false ;

 return {
  loaded: function(){ return true; }
    }

}();
alert('...');

最佳答案

正确答案是:new Loader() #1 的配置对象在其 requires 数组中缺少自定义模块键名称 FLN

关于javascript - 为什么我的自定义模块在 YUILoader.onSuccess 事件触发后不可用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3929536/

相关文章:

javascript - wkhtmltopdf 在将 html 转换为 pdf 时获取 JavaScript 执行超出超时异常

php - 不同分辨率的响应式 LI 和 UL 未正确对齐

javascript - jquery基于滚动的隐藏/显示

javascript - Swiper JQuery if 语句涉及 .hasClass 和 .toggleClass

css - 如何让部分装饰文字 - 不装饰?

javascript - 比较 YUI 和 Ext JS

javascript - Flot - 柱形图,系列排列在一起

datatable - 如何在 YUI 数据表中找到选中的行?

javascript - 无法绑定(bind)到 'ngSwitchDefault',因为它不是 'ng-template' 的已知属性

javascript - 获取构成 Jquery 或 Javascript 中的元素的 HTML?