mootools和另一个(非框架)脚本之间的冲突

时间:2009-07-22 16:36:16

标签: javascript mootools conflict imageflow

我正在尝试将名为ImageFlow的javascript集成到Joomla网站中,但我在Internet Explorer中遇到错误(v8本机和兼容模式)并且无法显示。它在Firefox和其他浏览器中运行良好。)

我认为这个错误与mootools有关。错误详情:

  

消息:对象不支持此属性或方法
  行:48
  Char:27
  代码:0
  URI:[domain] /media/system/js/mootools.js

     

消息:对象不支持此属性或方法
  行:953
  Char:4
  代码:0
  URI:[domain] /media/imageflow/imageflow.js

mootools第48行(缩小)的开头是:

if(!this.addEventListener)fn=fn.create({'bind':this,'event':true});

相关的图像流代码为:

/* Just in case window.onload happens first, add it to onload
using an available method.*/
if(typeof addEvent !== "undefined")
{
    addEvent(window, "load", run); // <-- line 953
}
else if(document.addEventListener)
{
    document.addEventListener("load", run, false);
}
else if(typeof window.onload === "function")
{
    var oldonload = window.onload;
    window.onload = function()
    {
        domReadyEvent.run();
        oldonload();
    };
}
else
{
    window.onload = run;
}

2 个答案:

答案 0 :(得分:3)

我找到了一个解决方案:从图像流代码中删除第一个if子句。我不知道它是否适用于传统浏览器,但如果没有它,脚本在IE 6-8和适当的浏览器中运行得非常好。

答案 1 :(得分:0)

我曾经遇到过与灯箱和mootools类似的问题。我通过找到一个基于mootools的灯箱实现来解决它(实际上更好)。如果你不能,那么我建议将ImageFlow放入iframe中,这样两个脚本就不会发生冲突。