1

dom:loadedloadの間でPrototype javascriptフレームワークを使用して処理するイベントはありますか?
私はこのように見ているプロトタイプを使用してプリローダーを実装しました:プロトタイプフレームワークのJavascriptイベント階層

Event.observe(window,"load",preload); 
function preload(){ 
    if($('wrapper')) 
     $('wrapper').setStyle({"display":"block"}); 
    if($('loading')) 
     setTimeout('$("loading").fade({duration: 5.0});',4000); 
} 

、私はある柱の高さのfixatioanのために使用して別のハンドラをしました:

Event.observe(window,"load",function(){ 
    var bottomExtraOffset = (Prototype.Browser.IE) ? 100 : 130; 
    if(parseInt($$('.col1')[0].getStyle('height')) > parseInt($$('.col2')[0].getStyle('height'))) 
     $('wrapper').setStyle({'height' : parseInt($$('.col1')[0].getStyle('height'))+bottomExtraOffset+'px'}); 
    else 
     $('wrapper').setStyle({'height' : parseInt($$('.col2')[0].getStyle('height'))+bottomExtraOffset+'px'}); 
});//observe  

それはでかなりいい取り組んでいますIEを除くすべてのブラウザ! IEがonloadハンドラリストに2番目のハンドラを追加していないようですので、最初のものが何かの列の高さを取得しようとしているときに0を返します。

負荷 & DOM以外のイベントがあります:扱い、これを私のoutta取得することがをロード!

答えて

0

AFAIKというイベントはありません。dom:loadedイベントもPrototype開発者によって実装されていますが、これはJSのデフォルトイベントではありません。あなたは最初のものは最初に実行されるように、第二のハンドラの実行の遅延を作るためにヘルパーを使用する場合があります:

function foo(){ 
    var bottomExtraOffset = (Prototype.Browser.IE) ? 100 : 130; 
    if (parseInt($$('.col1')[0].getStyle('height')) > parseInt($$('.col2')[0].getStyle('height'))) { 
     $('wrapper').setStyle({'height' : parseInt($$('.col1')[0].getStyle('height')) + bottomExtraOffset + 'px'}); 
    } 
    else { 
     $('wrapper').setStyle({'height' : parseInt($$('.col2')[0].getStyle('height')) + bottomExtraOffset + 'px'}); 
    } 
} 

function bar() { 
    // One msec delay. 
    setTimeout(foo, 1); 
} 

Event.observe(window, "load", bar); // or window.observe("load",bar); 

また、ユーザエージェントはIEのようないくつかの地獄であるかどうかをチェックすることができ、その後、この方法とそれ以外の方法を使用してください。

+0

うわー!多くのおかげで、それは魅力的なように働いています^ o ^あなたが知っているように、あなたは私が前に議論した私の以前の質問に答えましたが、そのような解決策なしで問題を見つけるのに3日かかりました。 –

0

preload()を終了した後、単に2番目の関数を呼び出すことはできますか?

preload()の後に直接呼び出したくない場合は、フラグを設定してからセクション関数でタイムアウトを設定して、最初に実行が完了するまで待つことができます。

注文が重要な場合は、機能間の通信が必要です。

+0

スクリプトアルゴリズム全体のせいで、最初のスクリプトの後に2番目のスクリプトを直接呼び出すことはできません。私はあなたの提案に取り組んでいます、Ryanに感謝します。 –