首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Drupal CiviCRM脚本冲突

Drupal CiviCRM脚本冲突
EN

Stack Overflow用户
提问于 2011-06-08 05:24:33
回答 2查看 1.2K关注 0票数 5

在全新的Drupal安装中安装了CiviCRM,定制了CiviCRM并添加了数据。实际的Drupal站点是在单独的安装中单独构建的。现在它已经完成了,我将CiviCRM与新的Drupal站点(文件和数据库)合并。除非登录到CiviCRM:http://example.com/civicrm/dashboard,否则一切似乎都正常:

“必须在浏览器中启用Javascript,才能使用仪表板功能。”

是的,Javascript已启用。CiviCRM菜单都坏了,诸如此类。Chrome还报告了以下错误:

未捕获TypeError: Object #没有方法‘jquery.textarearesizer.js:5Uncaught’TypeError: Object #没有方法'TextAreaResizer‘main.js:6Uncaught TypeError: Object #没有方法'TextAreaResizer’jquery.textarearesizer.js:5Uncaught TypeError: Object #没有方法‘TextAreaResizer’

未启用性能下的Javascript压缩。有什么想法吗?

EN

回答 2

Stack Overflow用户

发布于 2012-02-18 00:13:18

为了避免与CiviCRM jQuery库冲突,Drupal使用JQuery对象作为cj,而不是$。从理论上讲,它们使用不同的版本很好,因为它们的命名空间不同( jQuery官方使用noConflict()支持)。

您遇到的冲突可能来自于您的修改,导致Drupal或CiviCRM在引导程序中的不同位置加载其jQuery库,或者使其多次尝试加载jQuery。这将使得将$转换为cj的操作在Drupal jQuery对象已经实例化之后而不是之前拾取它,留下Drupal和/或CiviCRM没有它需要的库被附加到$ object (您是否使用#而不是$?)。

在有问题的页面上的任何地方搜索使用noConflict()的所有代码,并包含其JavaScript。你应该只在一个地方找到它。与demo.civicrm.org页面进行比较,看看其中的不同之处,您可能会在其中的某个地方找到一个额外的页面。解决这个问题的最好方法是调整Drupal系统表中自定义模块的加载顺序,或者将第二个noConflict()调用设置为在没有cj对象的情况下有条件地运行。

票数 2
EN

Stack Overflow用户

发布于 2012-08-16 20:14:48

我已经完成了一个bug report。应用这个补丁似乎以一种干净的方式为我解决了问题。这样,如果不需要,jQuery库不会被多次加载。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6271831

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档