在全新的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压缩。有什么想法吗?
发布于 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对象的情况下有条件地运行。
发布于 2012-08-16 20:14:48
我已经完成了一个bug report。应用这个补丁似乎以一种干净的方式为我解决了问题。这样,如果不需要,jQuery库不会被多次加载。
https://stackoverflow.com/questions/6271831
复制相似问题