我想在我的主题文件夹中复制一个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 添加两个不同的:
jquery.Jcrop.js
,这是一个导入的库文件,提供一般的裁剪功能(在 jquery 的上下文中) - 通常,您不应该有理由替换它。- “imagefield_crop.js”,它提供“桥接”以允许上述库在 Drupal 上下文中正常工作 - 我的理解是您想要替换这个库。
两者都是该功能正常工作所必需的。您发布的代码只会替换第二个代码,除非您不小心在问题更新中发布了错误的代码片段,否则它似乎可以工作。
如果您想替换两者(或仅替换第一个),则需要扩展/调整您的取消设置逻辑来执行此操作。
关于Drupal:无法取消设置 js 文件并在主题目录中使用新的 js,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3810837/