2012-12-25 41 views
4

如何添加特定的JavaScript到drupal 7中的特定节点? 现在我通过“javascript librairies”模块添加我的.js javascript。但是这会将.js添加到所有节点。 我想为节点1启用myjavascript1.js并为节点2启用myjavascript2.je?如何将JavaScript添加到drupal 7中的单个节点?

有没有办法达到这个目标?我必须制作我自己的模块吗?

+2

使用['hook_node_view_alter'](http://api.drupal.org/api/drupal/modules%21node%21node.api.php/function/hook_node_view_alter/7)钩子,并调用['drupal_add_js'] (http://api.drupal.org/api/drupal/includes%21common.inc/function/drupal_add_js/7)包含你的JS。在使用相同JS的多个节点在一个页面上呈现的情况下,可能要小心不要添加相同的JS两次。 (另外:有一个[单独的StackExchange for Drupal问题](http://drupal.stackexchange.com/)。) – DCoder

回答

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

您可以创建节点 - [NID] .tpl.php文件的特定节点ID之后,你可以使用特定的节点ID特定的js文件。

0

您可以使用https://drupal.org/project/scriptfield(这里发生无耻的自我推销)。 这可以让你按照每个节点完成你所需要的操作。

如果您需要将其添加到多个节点,它会非常有用,因为它可以让您在不为每个节点ID创建一个模板的情况下执行此操作。

相关问题