gpt4 book ai didi

javascript - 如何在 Drupal 8 主题中添加 javascript 库?

转载 作者:行者123 更新时间:2023-11-30 17:13:37 26 4
gpt4 key购买 nike

我试图在我正在构建的 Drupal 8 主题中包含一个自定义 javascript 文件来操作我的菜单。我遵循了 Drupal 8 主题指南中的说明,将其包含在我的 .info.yml 文件中:

#js libraries
libraries:
- dcf/base

并在我的 .libraries.yml 文件中定义它:

base:
version: 1.x
js:
js/endscripts.js
dependencies:
- core/drupal
- core/underscore
- core/backbone
- core/jquery

最后创建一个带有钩子(Hook)实现的 .theme 文件(我不是真正的 PHP 开发人员,所以我主要是根据指南中的示例进行复制/粘贴工作)

<?php

function dcf_page_alter(&$page) {
$page['#attached']['library'][] = 'dcf/base';
}

?>

我清除缓存,注销以查看未登录页面(管理 View 有很多额外的脚本和它调用的 css 文件)并查看源代码以查看我的脚本是否正在加载。我在我的库中列出的所有依赖项都被加载,但不是我的脚本本身。

enter image description here

脚本本身只是一个基本测试,应该使用 JQuery 隐藏我的主菜单,将其放入主题指南提到的“严格”格式是必需的。

(function () {
"use strict";
// Custom javascript
$(document).ready(function() {
$("#block-dcf-main-menu").hide();
});
})();

此时我不知所措。我的直觉是错误出在我的钩子(Hook)实现中,因为我真的不了解 Drupal 的钩子(Hook)系统,但据我所知,它仍然可能只是他们还没有完成 Drupal 8 的实现(我我这样做是为了为我的组织即将进行的网站重建测试 Drupal 8,目前正在运行 Drupal 8.0.x-beta2,没有安装其他模块)

最佳答案

我是这样做的

my_theme.info

没有库声明

my_theme.libraries.yml

my_theme:
version: 1.0
css:
theme:
css/my_theme.css: {}
js:
js/my_theme.js: {}
dependencies:
- core/jquery
- core/drupal
- core/drupalSettings

my_theme.theme

/*
*
* see doc to attach library more specifically
*
* */
function my_theme_page_attachments_alter(array &$attachments) {
$attachments['#attached']['library'][] = 'my_theme/my_theme';
}

/js/my_theme.js

 console.log('it works!');

/css/my_theme.css

 /*smthg radical happens*/
body{
display:none;
}

关于javascript - 如何在 Drupal 8 主题中添加 javascript 库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26512831/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com