1

より良いJavaScriptを書こうとしています、woohoo!

私にとっての最初のステップ:YUILoader依存関係ローダー。これにより、すべてのカスタムコードを信頼できる時点で使用できるようになります。

私の現在の環境:

  • YUI(2.8.1)ライブラリパス:C:\ wamp \ www \ lib \ js \ yui \ 2 \ build \(http:// localhost / lib / js / yui / 2 / build /)
  • 上記の場所にあるすべてのYUImin、debug、およびrawファイル
  • カスタムライブラリパス:C:\ wamp \ www \ lib \ js \(http:// localhost / lib / js /)
  • 上記の場所にあるカスタムモジュール「fln-min.js」
  • Chromeでのテスト

ノート:

以下は私のHTMLページの例で、カスタムモジュールはHTMLコードに従います。CSSやファンキーなものはまだありません。これを概念実証として機能させたいだけです。私のコードを実行すると、両方のonSuccessイベントが発生することがわかりますが、ネストされたコールバックデータではnullであり、カスタムモジュールは使用できないようです。パスの連結、つまり最初のYUILoaderインスタンスの「base」や2番目のYUILoaderインスタンスの2番目の「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('...');
4

1 に答える 1

0

正解は次のとおりです。 new Loader()#1の構成オブジェクトの配列にカスタムモジュールキー名FLNがありませんでした。requires

于 2010-11-30T12:40:28.323 に答える