2016-07-22 4 views
1

私はJQuery.UIのdatepickerを使用していますが、プラグインウィジェットを実際に私のweb-appで使用する前に更新する必要があるいくつかの変更があります。テストのために、JQueryとdatepickerライブラリに標準のタグをロードし、独自のタグで修正コードを入力し、最後にもう一つのタグのdatepickerと初期化コードのタグを入れます。これは、変更された日付ピッカーを使用するページが1つしかない場合にすべて機能します。別のjavascriptを含むjavacript

変更されたデータを複数のページで使用したいのですが、私が使用する各場所でdatepickerのすべての変更を維持する必要はありません。私がしたいのは、datepicker用のラッパーファイルを作成することです。これには、変更コードとdatepickerを使用するために必要なインクルードが含まれています。次に、datepickerを使用するページで、ラッパースクリプトファイルをインクルードします。

これは、別のJavaScriptファイルに含まれるjavascriptファイルを含むものです。

これは他の質問と重複していることがわかりましたが、document.writeやJQueryのaddscriptテクニックなど、他の質問で提案された修正を試しても、動作していないようですChromeの私のために。私が最初に遭遇する問題は、addScript関数が、メインファイルのタグで通常ロードされるJQueryライブラリに深刻な問題があることを教えてくれることです。 addScriptをコメントアウトすると、エラーは発生しません。 document.writeメソッドは実行されているようですが、datepickerは動作しません。

私はラッパーを作成することができるので、スクリプトが他のスクリプトの読み込みにどのように最適な負荷をかけているのかを知りたいので、主要なブラウザすべてで解決する必要があります。

これは、プロセスがPHP + Ajaxを使用して作成されたページに適応可能でなければならないことですが、最初は純粋なHTML + Javascript + JQuery + JQuery.UI Datepickerソリューションを使用したいと考えています。

これは既に回答済みで、ここで概説した制約で動作する場合は、その解決策を教えてください。単に「重複する質問」と言っておかないでください。私はこのフォーラムやその他のソリューションを見直しましたが、うまく動作せず、正しいエラーが発生するシンプルで複雑なソリューションが多数見つかりました。

タグがネストされたインクルードをサポートしていれば、これはすべて簡単になり、このコンセプトを使用して、基本ライブラリオブジェクトへのオーバーライドを分離するためのラッパーをサポートすることができます。したがって、theとcssをサポートする堅牢なクロスブラウザー技術は本当に間に合っています。それがそこにあるなら、私はそれを逃したが、私が見たことから、それは「プライムタイムの準備ができている」方法ではない。

おかげで、 ハワード・ブラウン

+0

なぜ1つのファイルにコピーしませんか? –

+0

なぜ後でロードする必要がありますか? –

+0

**他の含まれているjavascriptファイルのjavascriptファイルを含む**とはどういう意味ですか?** – madalinivascu

答えて

0

私は非常に私の提案のようなウルつもりを疑うが、IMAが行く与えるとにかく

includes.phpはTHTファイル内のすべてのものを置くというファイルを作成します

使用

<? include("includes.php"); ?>

使用すると、1つのファイルにすべてのスクリプトを置くことができ、uは1つのコードの単純なラインで好きな彼らはのように多くのページに含まれているこのように必要な

+0

これを一度実行して、フラット化されたオプションで最小化されたファイルをキャッシュする方がさらに効率的です。 – GolezTrol

+0

なぜdownvote笑これは完全に有効な答えですが、最適ではないかもしれませんが、実際には有効ですive様々なウェブサイト、エンジン、フレームワークを見て...このメソッドを使用して –

+0

ジョセフ・フレイムス - それを投票しないでください。代わりに、私はそれを投票するだろうが、私はそうする担当者を持っていない。シンプルで、まさに私がやろうとしていることです!私はPHPを使用しているので、これを実装します。 他のソリューションは、PHP以外のケースではまだ便利なので、まだ試してみる必要があります。 :) –

-1

あなたはgitのシステムとローカルリポジトリを使用することができますあなたの変更が必要なときにいくつかのマージを行うことができます。それは私が示唆しているものだろう。元のブランチをフォークし、変更を追加します。これはパッチファイルとも呼ばれます。

+0

これはメンテナンスが難しく、ライブラリを更新したいときに簡単に壊れることがあります。 – GolezTrol

+0

なぜ私はこれのためにdownvoted得るだろうか?その有効な解決策は、実際の解決策はあなたにとっては合意ではないかもしれませんが、その解決策と、ほとんどの人が実際に行うことです。彼らが望む変更を元の作成者に提出します。 – JQluv

+0

JQluv - chiming inに感謝します。コードベースを維持するための非常に良い方法として、私は投票しませんでした。しかし、これは、すべてのdatepickerコードをラッパースクリプトファイルにまとめることと同じだと思います。私はdatepickerのライブラリコードの+1000行を同じファイルにすべてのパッチコードで流し込むことで、全体を理解しにくくして維持すると思います。ライブラリとパッチを分離しておくと、すべてをより明確かつモジュラルに保つのに役立ちます。パッチごとに異なるファイルを作成すると、オーバーキルになる可能性があります。 –

3

このような試みをしましたか?潜在的に

var Loader = function() { } 
Loader.prototype = { 
    require: function (scripts, callback) { 
     this.loadCount  = 0; 
     this.totalRequired = scripts.length; 
     this.callback  = callback; 

     for (var i = 0; i < scripts.length; i++) { 
      this.writeScript(scripts[i]); 
     } 
    }, 
    loaded: function (evt) { 
     this.loadCount++; 

     if (this.loadCount == this.totalRequired && typeof this.callback == 'function') this.callback.call(); 
    }, 
    writeScript: function (src) { 
     var self = this; 
     var s = document.createElement('script'); 
     s.type = "text/javascript"; 
     s.async = true; 
     s.src = src; 
     s.addEventListener('load', function (e) { self.loaded(e); }, false); 
     var head = document.getElementsByTagName('head')[0]; 
     head.appendChild(s); 
    } 
} 

使い方

var l = new Loader(); 
l.require([ 
    "example-script-1.js", 
    "example-script-2.js"], 
    function() { 
     // Callback 
     console.log('All Scripts Loaded'); 
    }); 

あなたは可能性があります(それのそれぞれのコールバック内の各1)したいと、彼らはまだすべてうまくいくよう含んなど多くの巣。

ソリューションのためのCSS Tricksのクレジット

+0

これは完全に実行可能であり、実際には非常に天才的ですが、これはすでに提案されている解決策よりはるかに面倒です。 –

+0

これは本当にユニークな解決策です!私はCSS Tricksへのあなたの信用を見るので、これはまた、私がdatepickerを使用する各ページに必要な2つのCSSファイルを読み込むことを可能にすると思われます。面白い。同じことを行う他の方法については、私が最初に参照したものは、日付ピッカーがまったく機能しなかったか、またはスクリプトエラーが報告されたかのいずれかで、動作しませんでした。 –

+0

続行 - 新しい提案のうち、私は既に上記にコメントしましたが、あなたのニーズを満たしていないか、コードを1つにまとめる場合に維持するのが面倒です。

  • 11. 小枝:別のテンプレートのブロックを含む
  • 12. 別のサーバのPHPファイルを含む
  • 13. Antファイル、別のファイルを含む
  • 14. 別ファイルのRubyクラスを含む
  • 15. 別のループにループを含むストリーム
  • 16. 別の相対ビューを含むビュー
  • 17. 別のpythonスクリプトのスペースを含む引数を含むpythonスクリプトの実行
  • 18. Javascript - コンテンツ内のリストを含むタブ
  • 19. 番号を含むJavaScriptのループアクセスオブジェクト名
  • 20. nodejsサーバのlib-javascriptファイルを含む
  • 21. javacriptのファイルパスからローカルファイルを読む
  • 22. JavaScriptのコンテンツを含むハッシュを含む完全なURLを取得
  • 23. MVC4にjavascriptを含むセクションを使用
  • 24. 別のファイルを含むとJavaScriptファイルが機能しなくなる
  • 25. Zend 3ステップレイアウトとCSS/javascriptを含む
  • 26. Spring MVC - 静的ファイル/ javascript、cssを含む
  • 27. Javascript window.promptでバックスラッシュを含む変数
  • 28. JavaScriptをASPに含むASP.NET MVC
  • 29. javacriptで行単位でテキストファイルを読む
  • 30. markdownからhtmlに行くときにpandocを含むjavascriptファイルを含む