📅  最后修改于: 2023-12-03 15:14:48.227000             🧑  作者: Mango
如果您正在使用 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 主题中检查当前页面是否为节点了。根据需要,您可以调整代码以实现您的自定义逻辑。