2012-12-25 123 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創建一個模板的情況下執行此操作。

相關問題