微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在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可以使用级联方法:您可以在模块中拥有通用/基本的内容,并在主题中提供增强或特定的功能

原文地址:https://www.jb51.cc/css/219692.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。