javascript - Drupal block View 执行 Javascript 函数

标签 javascript php function drupal drupal-blocks

这将是我正在创建的第一个自定义模块,对于像将 js 函数渲染到 drupal block 模块这样简单的事情,我已经有些灰白了。

因此,通过将以下代码粘贴到 drupal create new block 中,脚本在 php 模式下工作得很好,并且渲染得很好。

   <!-- Include my.js  -->
    <script src="https://1.2.3.4/static/my.js"></script>

    <!-- Decide where you want to put my -->
    <div id="my_container" style="position: relative; width: 60em; height: 30em;">
        <div id="my"></div>
    </div>

    <!-- Call my.init() at some point after the page is done loading -->
    <script>
    window.onload = function() {
        // Initialize my:
        my.init({url: 'https://1.2.3.4/'});
    }
    </script>

现在将其加载到 block 模块中的最佳实践是什么,是 hook_init 还是 hook_block_view 或两者兼而有之,请给出示例和解释。

提前非常感谢。

最佳答案

我同意大多数答案或给出的答案,但我想指出一个潜在的错误。

问题在于启用 block 缓存后在 hook_block_view 中使用 drupal_add_js 。

更具体地说,一旦 block 被缓存,你的js将不会被添加到这个方法中。

要解决此问题,您可以在 hook_block_view 中构建的可渲染数组中使用“#attached”。

查看https://api.drupal.org/comment/28929#comment-28929

关于javascript - Drupal block View 执行 Javascript 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26156354/

相关文章:

javascript - 为什么脚本将整个多位数字分隔成单独的数字?

javascript - Css 和 Javascript 的问题

php - 如何将 SQL 与 PHP 分开?

javascript - html复选框取消单击隐藏函数变量

javascript - (Javascript) 带有提示的函数

javascript函数无法正确调用

javascript - jQuery - 如何在 div 中查找表格

php - 使用php从mysql数据库中选择特定内容

php - 想法如何在没有 php 循环的情况下实现服务器推送内容

javascript - 在 JS 中从另一个文件访问变量