0

Drupal 7 を使用して、hook_user_login 内から drupal_add_js を使用して js を追加しています。

js を追加した後、drupal_get_js() を呼び出すと、js が追加されていることがわかりますが、ページの読み込み中に js が消えてしまいます。

私のコードは次のとおりです。

function popups_user_login(&$edit, $account) {
    $js = 'some inline js here';
    drupal_add_js($js, array('type'=>'inline', 'weight'=>1));
    drupal_add_js(drupal_get_path('module', 'popups').'/popups.js', array('weight'=>2));
}

このモジュールの目的は、ユーザーがログインすると、特定の基準が満たされた場合にポップアップを作成することです。

drupal.org にも同様の質問があります

ここで何が起こっているのか誰か教えてもらえますか?

(私は 2 つの別々の Drupal 7 インストールでこれを試しましたが、両方のサイトで同じ問題を経験しました)

4

1 に答える 1

2

Clive が言ったように、これはログイン直後にリダイレクトが発生したためです。これは、Devel をインストールし、Devel の設定ページで「リダイレクト ページを表示する」をオンにすることで確認できます。

解決策は、hook_user_login (私の場合、表示したいポップアップの nid が含まれている) にセッション変数を設定することです。これを hook_page_alter で読み取り、この時点で追加された必要な JS を追加します。

于 2012-11-20T09:11:26.537 に答える