Javascript drupal\u add\u js在hook\u user\u登录中不工作
使用Drupal7,我从hook\u user\u登录中使用Drupal\u add\u js添加js 添加js后,我可以调用drupal_get_js(),我可以看到我的js已经添加,但是当页面加载js时,js已经消失了 我的代码是:Javascript drupal\u add\u js在hook\u user\u登录中不工作,javascript,drupal,drupal-7,Javascript,Drupal,Drupal 7,使用Drupal7,我从hook\u user\u登录中使用Drupal\u add\u js添加js 添加js后,我可以调用drupal_get_js(),我可以看到我的js已经添加,但是当页面加载js时,js已经消失了 我的代码是: function popups_user_login(&$edit, $account) { $js = 'some inline js here'; drupal_add_js($js, array('type'=>'inline
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上也有类似的问题
有人能告诉我这里发生了什么事吗
(我已经在两个单独的Drupal 7安装上尝试过了,并且在两个站点上都遇到了相同的问题)就像Clive说的,这是由于登录后直接发生重定向。 这可以通过安装Devel并打开Devel设置页面上的“显示重定向页面”来检查
解决方案是在hook_user_login中设置一个会话变量(在我的例子中,它包含我想要显示的弹出窗口的NID),然后可以在hook\u page\u alter中读取,并在此时添加必要的JS。很可能您已经设置好在登录后重定向到某个页面…因此您在第一个页面请求中添加JS,会发生重定向,而下一个页面没有打开JS addedSpot-我安装了Devel并打开了它“显示重定向页面”,我确实在登录后被重定向。奇怪的是,我被从主页重定向回主页…我的解决方案是在hook\u user\u login中设置会话变量,然后检查是否在hook\u page\u alter中设置了会话变量,然后在此时添加JS。。。