2

Drupal 7のインストールでは、サブテーマ(baseおよびadminサブテーマ)によってロードされる2つの別個のJavaScriptファイルがあります-これが有用な情報であるかどうかはわかりませんが、次のようになります。

ロードされた最初のjsファイルでJavaScript変数を定義し、それを2番目のファイルで使用したい場合はどうなりますか?どのように定義すればよいですか?

基本的に、質問は次のようになります。Drupal環境でグローバルJavaScript変数を定義する方法は?

私はjQueryを使用しています。

前もって感謝します!

編集:

最初のjsファイル:

var myOwnVar;

(function ($) {
    $(document).ready(function() {
        myOwnVar = 1;
    });
}(jQuery));

2番目のjsファイル:

(function ($) {
    $(document).ready(function() {
        console.log(myOwnVar);
    });
}(jQuery));
4

1 に答える 1

6

Drupal.settingsを使用します。

値は、JavaScript関数全体でグローバルにアクセスできます。

PHPからJSに変数を渡すことができます...

drupal_add_js(array('YOURMODULE' => array('SOMEVARIABLE' => 'woohoo')), 'setting');

次に、JS関数の変数にアクセスします...

(function ($) {
  Drupal.behaviors.YOURMODULE = {
    attach: function (context, settings) {

      // You can access the variable by using Drupal.settings.SOMEVARIABLE
      alert(Drupal.settings.YOURMODULE.SOMEVARIABLE);

    }
  };
})(jQuery);

http://drupal.org/node/172169#variablesandarraysを参照してください

「変数はグローバルスコープで定義しないでください。ローカル関数スコープで定義するようにしてください。すべての変数は、関数の先頭で宣言する必要があります。」

または、クロージャ以外の次の機能も機能しますが、回避する必要があります。

var SOMEVARIABLE = SOMEVALUE;

(function ($) {
  Drupal.behaviors.YOURMODULE = {
于 2013-01-09T12:09:27.167 に答える