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

就像克莱夫说的那样,这是由于登录后直接发生重定向。这可以通过安装Devel并在Devel设置页面上打开“显示重定向页面”来检查。

解决方案是在 hook_user_login 中设置一个会话变量(在我的例子中,它包含我想要显示的弹出窗口的 nid),然后可以在 hook_page_alter 中读取它并添加此时添加的必要 JS。

于 2012-11-20T09:11:26.537 回答