-1

ロード時にエンドポイントにAJAX呼び出しを送信してHTMLを取得し、そのHTMLをページに挿入するページがあります。そのHTMLには、ASP.NET BundleConfigの@Scripts.Render()メソッドによって生成された<script>が含まれています。これは私たちがQAと生産でJavascriptを縮小し、私たちのローカル開発環境でJavascriptをデバッグすることを可能にします。ASP.NETバンドルされたJavascript Asyncronoslyを呼び出してからコールバックを呼び出す

私の問題は、ページに外部Javascriptファイルをロードして一度読み込んだら、ページのDOMは、すぐにjQueryの準備ができてブロックの実行中に、myFunction();をロードされたので、これで私の問題がある

<script src="/js/file1.js" /> 
<script src="/js/file2.js" /> 
<script> 
    $(function(){ 
     // function included in file2.js 
     myFunction(); 
    }); 
</script> 

;:のように通常、HTMLのチャンクが見えますすべてfile1.jsおよびfile2.jsがまだロードされています。これは明らかにmyFunction is undefinedエラーになります。

Javascriptファイルを含むHTMLを非同期的に読み込むときにASP.NETのバンドルを使用する方法はありますか?

答えて

1

簡単な修正は、それがコードで表示されたときの順序で$(window).load()

$(document).ready()実行を使用することです。

$(window).load()すべてがロードされた後に実行されるので、複雑な方法を試すのではなく、これを試すことができます。これはうまくいくはずです。 - ちょっとした提案。

<script src="/js/file1.js" /> 
<script src="/js/file2.js" /> 
<script> 
    $(window).load(function(){ 
     // function included in file2.js 
     myFunction(); 
    }); 
</script> 
+0

私はアイデアが好きです。私はそれを試してみましょう。 –

+0

jQueryは複雑な過度のアイデアであなたの心が過負荷になっている日を通常節約します! @FillipPeytonが役に立ったら教えてください –

+0

うまくいかないようです。ウィンドウが既にロードされているため、 'window'がロードされた後にイベントハンドラが作成されるので、ハンドラはヒットしないと思います。 –

関連する問題