【问题标题】:Mootools and ExtJs 4.x seem to be incompatible, how to solve?Mootools 和 ExtJs 4.x 似乎不兼容,如何解决?
【发布时间】:2013-10-07 13:54:22
【问题描述】:

Mootools 和 ExtJs 在同一页面上使用时存在兼容性问题。 Mootools 抛出以下错误:

 Uncaught TypeError: Property 'id' of object #<HTMLDocument> is not a function

我们如何同时使用这两个框架?有解决办法吗?

【问题讨论】:

  • 很高兴你成功了! +1 不寻常的问题
  • 在同一页面上同时使用两者的原因是什么?看起来有点矫枉过正,不是吗?
  • @dbrin 我尝试逐步升级使用遗留框架(jxlib,基于 mootools)编写的应用程序。这涉及重写所有 javascript,我希望能够保持应用程序的一部分保持原样。

标签: extjs mootools extjs4.1 compatibility extjs4.2


【解决方案1】:

这看起来像 document.id('..') 参考问题,它已定义但不是 mootools 方法...

如果它没有指向 mootools 方法,则什么都不会起作用。

我认为 ExtJS 或您的应用程序已将属性 id 添加到文档中,这不是一个函数,可能是一个字符串或其他原语。

非常确定 ExtJS 不会覆盖 document.id,尤其是考虑到他们 (Sencha) 聘请了 MooTools 核心团队开发人员 @subtlegradient (thomas aylott),他们共同编写了 Slick 选择器引擎并帮助设计了 document.id 转换在 MooTools 中从 1.11 中的简单 $ 开始

您可能无法通过document.id = $ 恢复它,因为它是通过引用而被覆盖的。

唯一的机会是在 ExtJS 加载并启动后尝试加载 MooTools - 或加载 MooTools,在之后立即保存像 document.$id = document.id; 这样的引用,加载 ExtJS,然后在准备好后通过 document.id = document.$id; delete document.$id 恢复它 - 仍然不能保证这会在正确的时间运行。你真的需要看看是什么在 web 检查器中修改了你的 document 对象(你可以添加一个观察者)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-03
    • 2017-01-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多