使用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上有一个类似的问题just here。
谁能告诉我这里发生了什么?
(我在2个独立的Drupal 7安装上尝试了这个,并且在两个站点都遇到了同样的问题)
答案 0 :(得分:2)
像Clive一样,这是由于登录后直接发生重定向。 这可以通过安装Devel并在Devel设置页面上打开“显示重定向页面”来检查。
解决方法是在hook_user_login中设置一个会话变量(在我的例子中包含我要显示的弹出窗口的nids),然后可以在hook_page_alter中读取并添加必要的JS。