ホームページ  >  記事  >  ウェブフロントエンド  >  laydate.css読み込み時のlaydate.jsのパスエラーについて詳しく解説

laydate.css読み込み時のlaydate.jsのパスエラーについて詳しく解説

小云云
小云云オリジナル
2017-12-27 14:01:134268ブラウズ

laydate.js は、Javascript シリーズに属する日付制御および時刻プラグインであり、IE6 を含む主流のブラウザーと互換性があります。 laydate.js が Xianxin によって大幅に書き直された後、ますます強力になり、より柔軟に使用できるようになりましたが、angular+ocLazyLoad に基づくプロジェクトで問題が発生しました。日時選択プラグインlaydate.jsは皆さんによく知られていると思いますが、この記事では主にlaydate.jsのlaydate.css読み込み時のパスエラーの問題を解決する方法に関する関連情報を紹介します。サンプルコードを通じて詳細に説明しています。これは誰にとっても非常に役立ち、勉強や仕事をする際に役立ちます。必要な方は以下を参照してください。

問題が見つかりました

laydate.jsがocLazyLoadの非同期読み込みによって導入されたため、パスエラーを確認したところ、次のように書かれていることがわかりました。これ:

getPath:function(){
 var e=document.scripts,
 t=e[e.length-1],
 n=t.src;
 if(!t.getAttribute("merge"))
 return n.substring(0,n.lastIndexOf("/")+1)
}()

最初にlaydate.jsへのパスを取得し、次にlaydate.cssのセクションを追加して、最終的に完全なパスに結合する必要があります。

laydate.js のパスを取得するために作者が使用したアイデアは次のとおりです。パスを決定するための js コードは通常、関数ではなく js ファイルに直接配置されるため、その中のステートメントは、次のときにすぐに実行されます。このステートメントがちょうど e.length-1 のときに取得される js ファイルの数は、ページの最後にある js ファイルがまだ読み込まれていないため、そこで取得される js ファイルの数になります。ページ上のすべての js ファイルの数ではありません。この方法では、ファイルを取得するためにパスをたどる必要がなく、ファイルの判定にファイル名が必要ないため、判定がより正確になります (e.length-1 は常にファイル自体です)。

ただし、この方法には欠点があります。 document.write("