【问题标题】:Javascript "<body onload=...>" in DrupalDrupal 中的 Javascript“<body onload=...>”
【发布时间】:2010-08-25 15:20:36
【问题描述】:

我正在尝试将javascript library for drag&drop on tables 集成到我的自定义 Drupal 模块的一页中。我已经使用drupal_add_js包含了js文件,但我不知道如何初始化它。

该库的文档声明应该像这样调用 init 函数

<body onload="REDIPS.drag.init()">

我将如何在 Drupal 中做到这一点?还是 Drupal 有更好的方法来初始化脚本?

【问题讨论】:

    标签: javascript drupal onload


    【解决方案1】:

    Drupal 对此有自己的机制,包括向Drupal.behaviors 添加一个属性。看到这个页面:http://drupal.org/node/205296

    Drupal.behaviors.redipsDragBehavior = function() {
        REDIPS.drag.init();
    };
    

    来自链接页面:

    任何定义为属性的函数 Drupal.behaviors 将被调用 DOM 已加载。

    【讨论】:

    • 谢谢。我怀疑有一种 Drupal 方法可以做到这一点,但我找不到。
    • 不知道 Drupal javascript 的东西。很高兴知道这一点。
    • 如果 REDIPS.drag.init() 没有,您应该添加自己的检查以避免多次初始化。每次通过 JavaScript 将元素添加到页面时都会调用行为函数,而不仅仅是在页面加载时。像 Drupal.behaviors.redipsDragBehavior = function() { if(!argument.callee.init) { REDIPS.drag.init();参数.callee.init = TRUE; }};
    【解决方案2】:

    您可以尝试在与其他 add_js 相同的函数中添加另一个 drupal_add_js 调用:

    drupal_add_js('REDIPS.drag.init();','inline','header',true);
    

    最后一个参数“true”是延迟脚本的执行。 我希望在某种程度上有所帮助!

    【讨论】:

      猜你喜欢
      • 2023-03-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-08
      • 2012-04-24
      • 2015-01-25
      • 2021-02-14
      相关资源
      最近更新 更多