使用 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 安装上尝试过此操作,并且在两个站点上都遇到了相同的问题)
最佳答案
就像克莱夫所说,这是由于登录后直接发生的重定向。 可以通过安装 Devel 并在 Devel 设置页面上打开“显示重定向页面”来检查这一点。
解决方案是在 hook_user_login 中设置一个 session 变量(在我的例子中包含我想要显示的弹出窗口的 nid),然后可以在 hook_page_alter 中读取该变量并添加此时添加的必要 JS。
关于javascript - drupal_add_js 在 hook_user_login 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13458609/