2011-01-12 25 views
-4

にはどうすればいいのonload、ウィンドウの両方を以前のonloadを「記憶」してjQueryのは、あなたが持っていない使用してjQueryのjqueryでこのコードを書くにはどうすればいいですか?

<script> 
function init() {     

    alert('hi: '); 
} 

var previousOnload = window.onload;   
window.onload = function() { 
    if (previousOnload) { 
     previousOnload(); 
    } 

    init(); 
} 
</script> 
+1

サイド質問:これをどのように終了しますか?それは絶えずそれ自身を呼んでいるようですね? – polarblau

+7

これはコード作成サービスではありません。これは質問&回答サイトです。あなたは特定の質問がありますか?または、これまでに試したことを、少なくとも私たちに見せてください。 – Bobby

答えて

1

内のJavaScriptコードのこの作品を書くかとjQueryのonloadイベントが実行されます:

<script type="text/javascript"> 
    window.onload = function() { 
     WriteLine("window onload"); 
    }; 

    $(function() { 
     WriteLine("jQuery onload"); 
    }); 

    function WriteLine(msg) { 
     alert(msg); 
    } 
</script> 

ライブテスト・ケース:http://jsfiddle.net/SXQmT/

+0

私がこれをやっている理由はsalesforceにあります。私は通常のHTMLページでやるように私のonload関数を書くことができません。私たち自身の機能をロードするために言及されたハックは、私が投稿したコードを使用していました。だから私は前のonloadを記憶する必要があると思っています – Prady

+0

@Pradyいいえあなたは '$(function(){/ * code here * /}); 'を使うことができ、元のonloadを上書きすることなく*追加*されます。 –

+0

ありがとうございました。 – Prady

1

私は、次の操作を行います:

function LoadEvent(Func) 
{ 
    var OldOnLoad = window.onload; 
    if (typeof OldOnLoad != 'function') 
    { 
     window.onload = Func; 
    }else{ 
     window.onload = function() 
     { 
      OldOnLoad(); 
      Func(); 
     } 
    } 
} 

そして、そのように使用:

LoadEvent(Init); 
1

$(window).load(init)ほぼ同じことをするだろう。 previousOnloadが乱雑になることはありません。それはあなたのための以前の負荷を覚えて、ページが完全にロードされたときに両方を呼び出します。

関連する問題