我该如何将JavaScript添加到Drupal 7中的单个节点?

5

我该如何在Drupal 7的特定节点中添加特定的JavaScript代码?

目前,我通过“JavaScript库”模块添加我的.js JavaScript代码。但是这会将.js添加到所有节点上。

我想让myjavascript1.js在节点1中启用,让myjavascript2.js在节点2中启用,有什么方法可以实现吗?我需要自己制作一个模块吗?


2
使用 hook_node_view_alter 钩子,并调用 drupal_add_js 来包含您的 JS。可能要注意,在同一页上呈现使用相同 JS 的多个节点时,不要重复添加相同的 JS。(另外:有一个专门的Drupal问题StackExchange。) - DCoder
3个回答

1
创建一个名为 node--525.tpl.php 的单独模板文件,将 525 替换成您的节点ID,然后在头部添加 JavaScript。
在模板文件中添加以下代码:
<?php
function YOURTHEME-NAME_preprocess_page(&$vars, $hook) {
    if ((arg(0) == 'node') && (arg(1) == 'add' && arg(2) == 'CONTENT-TYPE')) {
        $vars['template_files'][] =  'page-node-add-CONTENT-TYPE';
    }
}
?>

1

您可以创建node--[nid].tpl.php文件来针对特定的节点ID,然后您可以使用特定的js文件来针对特定的节点ID。


0
你可以使用https://drupal.org/project/scriptfield(这里有点自我推销)。 这将让你在每个节点上做到你需要的事情。
如果你需要对多个节点进行操作,它会非常有用,因为它允许你在不创建每个节点ID的模板的情况下完成操作。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接