1

次のようないくつかの異なるページにインライン JavaScript があります。

$(function() {
   var myVar1 = ...;
   var myVar2 = ...;
   var myVar3 = ...;

   function myFunc1() {
      ...
   }

   function myFunc2() {
      ...
   }

   if (blah blah) {
      myFunc1();
   }
   else {
      myFunc2();
   }
});

それらを外部スクリプトに移動したいと思います。これは、クライアント側の JavaScript を展開するための推奨される方法です。

ただし、個々のページごとに variable の値が異なるmyVar1ため、このわずかな違いのために、非常によく似た複数の JS ファイルを作成する必要があるようです。もっと良い方法はありますか?

4

1 に答える 1

2

変数を関連する既存の HTML 要素属性に格納し、コード内で取得できます。

<div class="myclass" data-var1="Page 1"></div>


$(function() {
   var myVar1 = $(".myclass").data("var1");
   var myVar2 = ...;
   var myVar3 = ...;

   function myFunc1() {
      ...
   }

   function myFunc2() {
      ...
   }

   if (blah blah) {
      myFunc1();
   }
   else {
      myFunc2();
   }
});

別の解決策はmyVar1、関数を取り出して、各ページでグローバル変数として宣言することです。

例えば:

<script type="text/javascript">
  var myVar1 = 'Page1';
</script>
<script type="text/javascript" src="myscript.js"></script>

明確にするために、「myscript.js」は次のようになります。

$(function() {
   var myVar2 = ...;
   var myVar3 = ...;

   function myFunc1() {
      ...
   }

   function myFunc2() {
      ...
   }

   if (blah blah) {
      myFunc1();
   }
   else {
      myFunc2();
   }
});
于 2013-03-27T15:02:27.410 に答える