2009-07-22 66 views
2

我試圖將一個名爲ImageFlow的JavaScript整合到Joomla網站中,但是我在Internet Explorer(v8本機和兼容模式)中出現錯誤, t顯示。它在Firefox和其他瀏覽器中工作正常)。mootools和另一個(非框架)腳本之間的衝突

我相信這個錯誤與mootools有關。錯誤詳細信息:

消息:對象不支持此屬性或方法
線:48
字符:27
代碼:0
URI:[域] /媒體/系統/ JS/mootools的.js文件

消息:對象不支持此屬性或方法
線:953
字符:4
代碼:0
URI:[域] /media/imageflow/imageflow.js

mootools的線48的開頭(精縮)是:

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

相關imageflow代碼是:

/* 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; 
} 

回答

3

我找到了一個解決方案:從imageflow代碼中刪除第一個if子句。我不知道它是否適用於傳統瀏覽器,但是如果沒有它,那麼在IE 6-8和正確的瀏覽器中腳本工作得很好。

+0

好吧,mootools並沒有定義addEvent,而是作爲一種方法而不是函數。因此addEvent(窗口,「加載」,運行);失敗 - 正確的mootools方法可以這樣做: window.addEvent(「domready」,function(){ run(); }); – 2009-07-26 21:40:15

0

我有一個與lightbox和mootools類似的問題。我通過找到基於mootools的燈箱實現(實際上更好)來解決它。如果你不能,那麼我建議將ImageFlow放入一個iframe中,這樣兩個腳本不會發生衝突。