Drupal 8 自定义块如何附加 JavaScript ?

Posted

技术标签:

【中文标题】Drupal 8 自定义块如何附加 JavaScript ?【英文标题】:Drupal 8 Custom Block how to attach JavaScript ? 【发布时间】:2018-07-24 23:58:41 【问题描述】:

我已经成功创建了一个自定义块,只是想在该块上调用 java 脚本警报功能。我创建了一个 .js 文件。问题是如何在 BLOCK php 的构建函数中调用 javascript throgh 数组渲染中声明的函数

【问题讨论】:

欢迎来到 Stack Overflow!请edit您的问题显示the code you have so far。您应该至少包含您遇到问题的代码的大纲(但最好是minimal reproducible example),然后我们可以尝试帮助解决具体问题。您还应该阅读How to Ask。 【参考方案1】:

您需要先将 js 文件包含在 moduleName.libraries.yml 中。然后就可以运行了,alert功能就起作用了。

【讨论】:

【参考方案2】:

您可以将库附加到树枝文件中的块: 1) 假设区块名称为:block--foobar.html.twig 2) 你在 THEME.libraries.yml 文件中创建了一个库,名为:contact-js 3) => 您可以通过在 block--foobar.html.twig 中调用它来将库附加到块: attach_library('THEME/contact-js')

【讨论】:

【参考方案3】:

请详细说明问题。 据我了解,试试这个。 Reference

将 js 附加到 Block Plugin 的渲染数组

再举一个将库附加到渲染数组的示例,如果您在模块中构建块插件,则可以在扩展 BlockBase 类的类的 build() 函数中将库附加到渲染数组(从 Drupal 8 beta 6 开始)。

return [
  '#theme' => 'your_module_theme_id',
  '#someVariable' => $some_variable,
  '#attached' => array(
    'library' => array(
      'your_module/library_name',
    ),
  ),
];

【讨论】:

以上是关于Drupal 8 自定义块如何附加 JavaScript ?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Drupal 8 中自定义/样式/主题自定义内容类型的输出?

Drupal 8将当前nid传递给块模板

如何在 Drupal 视图块中自定义 HTML 结构

使用自定义字段“PHP 代码”查看 Drupal 图像附加路径

Drupal 8添加javascript并使用自定义模块在钩子中传递数据

如何 - 构建自定义 drupal 8 模块表单