Drupal:无法取消设置 js 文件并在主题目录中使用新的 js

标签 drupal drupal-6

我想在我的主题文件夹中复制一个js文件,而不是破解模块。这是我的代码:

 /*update js files */
  $scripts = drupal_add_js();

  unset($scripts['module']['sites/all/modules/imagefield_crop/imagefield_crop.js']);
  $scripts['module']['sites/all/themes/zen/zen/js/imagefield_crop.js'] = array('preprocess' => 1, 'cache' => 1);

  $vars['scripts'] = drupal_get_js('header', $scripts);

它适用于 lightbox2,但不适用于 imagefield_crop.js

我已经清理了所有 Drupal 缓存和浏览器缓存,但我的浏览器继续加载模块目录中的原始 js。

谢谢

更新:这是数组 $scripts

['module']

...

    [sites/all/modules/imagefield_crop/Jcrop/js/jquery.Jcrop.js] => Array
                (
                    [cache] => 1
                    [defer] => 
                    [preprocess] => 1
                )

最佳答案

鉴于评论中讨论后更新的问题,您似乎混淆了所涉及的 js 文件。 Imagefield_crop 添加两个不同的:

  1. jquery.Jcrop.js,这是一个导入的库文件,提供一般的裁剪功能(在 jquery 的上下文中) - 通常,您不应该有理由替换它。
  2. “imagefield_crop.js”,它提供“桥接”以允许上述库在 Drupal 上下文中正常工作 - 我的理解是您想要替换这个库。

两者都是该功能正常工作所必需的。您发布的代码只会替换第二个代码,除非您不小心在问题更新中发布了错误的代码片段,否则它似乎可以工作。

如果您想替换两者(或仅替换第一个),则需要扩展/调整您的取消设置逻辑来执行此操作。

关于Drupal:无法取消设置 js 文件并在主题目录中使用新的 js,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3810837/

相关文章:

html - div的拒绝垂直堆叠靠近

php - 在外部 PHP 文件中调用 Drupal 函数

php - 函数内有两个 WHILE - 没有执行一个

javascript - 如何让轮播在 drupal 站点上工作

drupal-6 - PHP 弃用了 Drupal 页面上的警告,尽管在 php.ini 中将其关闭

drupal - 从 6.12 升级到 6.15 后无法在 Drupal 上启用 Clean URL

javascript - Drupal.t 没有出现在翻译中

jquery - Drupal 7 + jQuery,如何让 jQuery 仅与事件节点(通过 nid)交互,而不是列表中的每个节点

Drupal:扩展用户表单?

php - 在服务模块中为 REST 服务器启用 SSL 时没有返回数据