1

私は4つのjavascriptファイル(それぞれが1つのHTMLファイル用)を持っており、3つの関数は4つのファイルすべてで同じです。どういうわけかこれらの3つの関数を別々に含めることができるスムーズな解決策を見つけたいです....js内に.jsを含めることは可能ですか?

4

5 に答える 5

2
  1. 複数の<script>タグを持つことができます:

    <script src="lib.js"></script>
    <script>
    // do stuff
    </script>
    
  2. jQueryを使用できます:

    $.getScript("lib.js", function() {
      // do stuff
    });
    
  3. browserifyYUICompressorGoogleのClosureCompilerなどのプリプロセッサを使用できます。

于 2012-12-15T17:09:09.440 に答える
1

たとえば、グーグルアナリティクスで機能するように、これを自分で書くことができます。

(function(){
    var lastIncludedScript = document.getElementsByTagName('script')[0];
    var yourScript = document.createElement('script');
    yourScript.type = 'text/javascript';
    yourScript.src = 'path/to/script.js';
    lastIncludedScript.parentNode.insertBefore(yourScript, lastIncludedScript);
})();

または関数のように:

function includeScript( path ){
    var lastIncludedScript = document.getElementsByTagName('script')[0];
    var yourScript = document.createElement('script');
    yourScript.type = 'text/javascript';
    yourScript.src = path;
    lastIncludedScript.parentNode.insertBefore(yourScript, lastIncludedScript);
}

利用方法:

includeScript( 'path/to/script.js' );
于 2012-12-15T17:07:33.907 に答える
1

javascriptファイルを非同期でロードすることについてのこの素晴らしい説明を見ることができます。これで問題が解決する可能性があります。または、他のjavascriptファイル内にjavascriptファイルをロードする方法に関するこのスタックオーバーフローの質問を見てください。

ただし、使用するすべてのものを1つのjavascriptファイルに含め、すべてのサイトに同じファイルをロードすることは、一見の価値があるかもしれません。これにより、すべてのJavaScriptをロードするために1つのhttpリクエストを行うだけで済み、非常に効率的にキャッシュできるため、パフォーマンスが向上します(したがって、後でJavaScriptをロードする必要はありません)。

于 2012-12-15T17:10:55.560 に答える
0

各htmlファイルに必要な適切なjsファイルを使用してください。それはあなたの問題を解決します。また、一般的な機能を含むものを両方のhtmlファイルに追加できます。これで問題が解決するはずです。

于 2012-12-15T17:07:53.627 に答える
0

ブラウザに他のJavaScriptのファイルを含めるのは少し遅いです。サーバー側のスクリプトを作成して、関連するすべてのJavaScriptを1つの「ファイル」に結合して縮小し、クライアントに送信します。

ページは、このスクリプトにパラメーターを渡して、含める必要のあるものを選択できます。

于 2012-12-15T17:09:02.387 に答える