【问题标题】:Drupal 7: Adding weight to drupal_add_js isn't changing position of scriptDrupal 7:向 drupal_add_js 添加权重不会改变脚本的位置
【发布时间】:2020-01-30 05:50:51
【问题描述】:

我有一大堆使用drupal_add_js 将.js 脚本添加到头部的模块。我想确保其中一个脚本出现在所有其他脚本之上。为此,我在选项中添加了 weight 值:

drupal_add_js(some_GTM_script.js, 
 array(
    'type' => 'inline',
    'scope' => 'head_scripts',
    'weight' => 99,
 ));

但没有任何改变。我试过99-99010,但不管脚本的位置是什么都没有改变。

有人知道怎么做吗?

【问题讨论】:

    标签: drupal drupal-7


    【解决方案1】:

    在适当的scopegroup 内使用负权重。

    weight:一个数字,用于定义 JavaScript 相对于其他具有相同 'scope'、' 的 JavaScript添加到页面的顺序>group' 和 'every_page' 值。

    group:一个数字,用于标识要在其中添加 JavaScript 的组。可用的常量是:

    • JS_LIBRARY:任何库、设置或 jQuery 插件。
    • JS_DEFAULT:任何模块层 JavaScript。
    • JS_THEME:任何主题层 JavaScript。

    组号用作权重:较低权重组内的 JavaScript 在页面上显示在较高权重组内的 JavaScript 之前。

    所以,如果 'head_scripts' 是页面上出现的第一个区域,您仍然需要定义脚本 'group',即。库脚本出现在主题脚本之前。

    要强制执行脚本的优先级,您可能需要使用JS_DEFAULT - x,或者如果您希望它被包含在任何东西之前,甚至是 jQuery 等,甚至可能需要使用 JS_LIBRARY - x

    drupal_add_js(some_GTM_script.js, 
     array(
        'type' => 'inline',
        'scope' => 'head_scripts',
        'group' => JS_LIBRARY - 1
        'weight' => -99,
     ));
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-10-14
      • 2013-01-08
      • 2022-12-20
      • 1970-01-01
      相关资源
      最近更新 更多