Drupal CiviCRM Javascript冲突

Drupal CiviCRM Javascript冲突,javascript,drupal,drupal-6,civicrm,Javascript,Drupal,Drupal 6,Civicrm,在新的Drupal安装中安装了CiviCRM,自定义了CiviCRM并添加了数据。实际的Drupal站点是在单独的安装中单独构建的。现在完成了,我将CiviCRM与新的Drupal站点(文件和数据库)合并。除登录CiviCRM外,所有功能都正常运行:它显示: “必须在浏览器中启用Javascript才能使用仪表板功能。” 是的,启用了Javascript。市政厅的菜单全坏了,诸如此类。Chrome还报告以下错误: 未捕获的TypeError:对象#没有方法“菜单” jquery.textarea

在新的Drupal安装中安装了CiviCRM,自定义了CiviCRM并添加了数据。实际的Drupal站点是在单独的安装中单独构建的。现在完成了,我将CiviCRM与新的Drupal站点(文件和数据库)合并。除登录CiviCRM外,所有功能都正常运行:它显示:

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

是的,启用了Javascript。市政厅的菜单全坏了,诸如此类。Chrome还报告以下错误:

未捕获的TypeError:对象#没有方法“菜单” jquery.textarearesizer.js:5未捕获类型错误:对象#没有“textarearesizer”方法 main.js:6uncaughttypeerror:Object#没有方法“cycle” jquery.textarearesizer.js:5未捕获类型错误:对象#没有“textarearesizer”方法


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

CiviCRM使用jQuery对象作为cj而不是$,以避免与Drupal jQuery库发生冲突。理论上,它们可以使用不同的版本,因为它们的名称空间不同(jQuery正式支持使用noConflict()

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


搜索页面上所有使用noConflict()的代码及其JavaScript。你只能在一个地方找到它。与demo.civicrm.org页面相比,您可能会在其中的某个地方发现一个额外的页面。修复它的最佳方法是调整Drupal系统表中自定义模块的加载顺序,或者将第二个noConflict()调用设置为在还没有cj对象的情况下有条件地运行。

我已经完成了一个测试。应用这个补丁似乎以一种干净的方式解决了我的问题。这样,jQuery库在没有必要的情况下不会被多次加载。

CiviCRM使用与Drupal不同的jQuery版本,有时它们会相互冲突。很可能你也有类似的问题。您使用的是“库存”Drupal还是定制发行版?我们也在处理类似的问题,所以如果您发现任何有趣的事情,请告诉我。@heavymark:您解决了这个问题吗?我想知道,因为我面临着类似的问题