2009-07-22 13 views
2

ImageFlowというJavascriptをJoomlaサイトに統合しようとしていますが、Internet Explorerでエラーが発生しています(v8ネイティブおよび互換モード) tを表示します。 Firefoxや他のブラウザでは正常に動作します)。mootoolsと別の(フレームワーク以外の)スクリプトとの競合

私はこのエラーがmootoolsに関係していると信じています。エラーの詳細:

メッセージ:オブジェクトはこのプロパティまたはメソッドをサポートしていません
ライン:48
シャア:27
コード:0
URI:[ドメイン] /メディア/システム/ JS/MooToolsは
ラインオブジェクトは、このプロパティまたはメソッドをサポートしていません:953
文字:

メッセージを.jsファイル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

私は解決策を見つけました:最初のif節をimageflowコードから削除してください。私はそれがレガシーブラウザのためにそこにあったのかどうかはわかりませんが、それがなければスクリプトはIE 6-8と適切なブラウザで完璧に動作します。

+0

よく、mootoolsはaddEventを定義しますが、メソッドではなく関数として定義します。したがって、addEvent(window、 "load"、run);失敗する - これを行う正しいmootoolsの方法は次のようになります: window.addEvent( "domready"、function(){ run(); }); –

0

ライトボックスとmootoolsで似たような問題が発生しました。私は、mootoolsに基づいたライトボックスの実装を見つけることで解決しました(これは実際には優れていました)。できない場合は、ImageFlowをiframeに入れて、2つのスクリプトが競合しないようにすることをお勧めします。

関連する問題