在Drupal 6中为特定节点添加CSS或Javascript文件

在Drupal 6中为特定节点添加CSS或Javascript文件的最佳方法是什么?

我想在我的网站上创建一个有一点JavaScript应用程序运行的页面,所以CSS和javascript是特定于该页面的,不会被包含在其他页面加载中。

解决方法

我建议不要使用hook_nodeapi。添加CSS和Javascript与布局相关,所以hook_nodeapi不是它的地方:使用主题。这样,您可以在开发新主题时覆盖这些文件。使用nodeapi方法做到这一点会更困难(您必须搜索js / css列表中的文件,将其删除并替换为自己的)。

无论如何,您需要做的是添加一个节点预处理功能,为您添加这些文件。您可以在模块或自定义主题中执行此操作。对于一个模块,这将是:

function mymodule_preprocess_node(&$variables) {
  $node = $variables['node'];
  if (!empty($node) && $node->nid == $the_specific_node_id) {
    drupal_add_js(drupal_get_path('module','mymodule') . "/file.js","module");
    drupal_add_css(drupal_get_path('module','mymodule') . "/file.css","module");
  }
}

主题

function mytheme_preprocess_node(&$variables) {
  $node = $variables['node'];
  if (!empty($node) && $node->nid == $the_specific_node_id) {
    drupal_add_js(path_to_theme() . "/file.js","theme");
    drupal_add_css(path_to_theme(). "/file.css","theme");
  }
}

首先不要忘记清除缓存。

在节点为主题之前调用这些函数。指定js / css可以使用级联方法:您可以在模块中拥有通用/基本的内容,并在主题中提供增强或特定的功能

相关文章

Css3如何实现鼠标移上变长特效?(图文+视频)
css3怎么实现鼠标悬停图片时缓慢变大效果?(图文+视频)
jquery如何实现点击网页回到顶部效果?(图文+视频)
css3边框阴影效果怎么做?(图文+视频)
css怎么实现圆角边框和圆形效果?(图文+视频教程)
Css3如何实现旋转移动动画特效