📜  drupal 8 检查当前页面是否为节点 - Javascript (1)

📅  最后修改于: 2023-12-03 15:14:48.227000             🧑  作者: Mango

检查当前页面是否为节点 - Drupal 8 主题中的 JavaScript

如果您正在使用 Drupal 8 并开发自己的主题,有时您需要检查当前页面是否显示了节点。您可以使用以下 JavaScript 代码来检查当前页面是否为节点:

(function ($) {
  Drupal.behaviors.myCustomBehavior = {
    attach: function (context, settings) {
      var currentNodeId = $('.node').attr('id');
      if (currentNodeId) {
        console.log('This page is a node.');
        // do something if the current page is a node
      }
    }
  };
}) (jQuery);

这里我们创建了一个名为 myCustomBehavior 的 Drupal behavior,它在 Drupal 把页面载入并初始化后运行。这个 behavior 使用了 jQuery,您需要确保在模板文件中包含 jQuery 库的代码。

$('.node') 选择器用于检查页面中是否有类为 node 的元素。如果存在,则代表当前页面为节点。我们接着使用 attr() 方法检查 id 属性是否存在,并把当前节点 ID 存储在 currentNodeId 变量中。

您可以根据需要自定义处理当前页面为节点情况的行为,例如添加一个 CSS 类、向用户显示消息或在控制台中输出日志信息。

这段代码可以放在 mytheme.libraries.yml 文件的 scripts 部分中。注意这里的 mytheme 是您的主题名称,您需要根据实际情况进行修改。

mytheme-scripts:
  version: VERSION
  js:
    js/my-custom-behavior.js: {}
  dependencies:
    - core/jquery

我们把 JavaScript 文件放在主题中的 js 目录下,在 mytheme.info.yml 文件中添加如下代码以指定本主题使用 mytheme-scripts 库:

libraries:
  - 'mytheme/mytheme-scripts'

现在您已经可以在 Drupal 8 主题中检查当前页面是否为节点了。根据需要,您可以调整代码以实现您的自定义逻辑。