var DynamicLoader; (function(){ DynamicLoader = function() {}; var prop = DynamicLoader.prototype; $.extend(prop, { /* includeするファイルが格納されている絶対パス */ //base_path: "../common/inc/", //base_path: "/asp/docomoid/common/inc/", base_path: getDirCompany() + "common/inc/", /* requires: ダイナミックロードの対象となるファイル一覧 file: 読み込み対象のファイル名一覧で、デバイス毎に定義する(pcとsp) target: 読み込んだHTMLをappendする対象のCSSセレクタ */ requires: { footer: { file: { sp: "sp/_footer.html", pc: "pc/_footer.html" }, target: "footer.footer", callback: rewrite_copyright_year }, navi: { file: { sp: "sp/_navi.html", pc: "pc/_navi.html" }, target: "nav.navi", callback: function(){} } }, /* requiresに定義された静的リソースをPromiseを使って読み込む @param device String 読み込みたいデバイス pc|sp @param cb_loaded Function 全ての読み込み完了後に実行するコールバック Function|null @return none */ load: function(device, cb_loaded) { var t = this; $.when(this._load(device, this.requires.footer), this._load(device, this.requires.navi)) .done(function(){ t.done(cb_loaded); }) .fail(this.fail); }, _load: function(device, res) { var t = this; return $.ajax({ url: t.base_path + res.file[device], success: function(html, state, xhr) { $(res.target).html(html); if ( $.isFunction(res.callback) ) { res.callback(); } }, beforeSend: function(xhr) { if ( device == "pc" ) { xhr.overrideMimeType('text/plain; charset=euc-jp'); } } }); }, // 読み込みの成功時のコールバック done: function(load_complete_callback) { if ( $.isFunction(load_complete_callback) ) { load_complete_callback(); } }, // 読み込みの失敗時のコールバック fail: function(error) { if( console && console.log ) { console.log(error); } } }); })(); /* コピーライトの年号を閲覧時の年号に書き換える */ function rewrite_copyright_year() { $(".copyright__year").text(new Date().getFullYear()); }