我继承了一个实现MooTools 1.4.5的代码库。
该代码还利用第三方库来处理响应设备上的拖动。该库中包含以下代码:
var dndEvent = new Event(type, {
bubbles: true,
cancelable: cancelable
});该事件在匿名MooTools函数中产生以下异常:
Uncaught TypeError: Cannot read property 'indexOf' of undefined
MooTools代码是精简的(和未映射的),所以我还没有对未精简的代码进行测试,看看这个匿名函数有什么作用,但我怀疑它与MooTools Element.Event有关。
如果是这种情况,我该如何强制作用域使用JavaScript的事件接口而不是MooTools?
发布于 2019-09-14 14:54:15
一个快速的技巧(我认为你在这个阶段试图避免深度重构)是在Mootools覆盖它之前‘保存’事件对象:
<script>window.savedEvent = window.Event</script>
<script src="mootools.js"></script>然后修改您的第三方库以使用'savedEvent‘,其中它现在显示为'Event',或者将所有它都放在一个作用域中。
+(function() {
var Event = window.savedEvent
//existing code goes here
})()但这可能需要显式导出库提供的所有内容,方法是将这些标识符放在窗口对象上
https://stackoverflow.com/questions/57923712
复制相似问题