2011-07-11 6 views
4

coffeescriptがコンパイルされ、ヘッダ内のすべてのスクリプトファイルが実行された後、ブラウザでいくつかのコードを実行する方法はありますか?以下のような 何か:coffeescriptはブラウザのonLoadのようなイベントを持っていますか?

coffee.onCompiled() - >はconsole.log "私はすべてのコーヒーのファイルをロード終えた"

は、他にどのように私は、この動作を得ることができますか?

答えて

9

最初は、CoffeeScriptからwindow.onloadにコールバックを付ける方法を尋ねていたのですが(これはもちろん、「これは単なるJavaScript」なので非常に簡単ですが)、今ではあなたはcoffee-script.jsを使用した場合、すべての

<script type="text/coffeescript" src="..."></script> 

タグが実行された後にそのコードが実行されることを確認する方法を求めていることを実現します。

1つの解決策は、ロードした最後のCoffeeScriptにコールバックを入れることです。 1.1.0以来、coffee-script.jsは、すべてのCoffeeScript scriptタグが確実に実行されるようにしています(但し、すべてのJavaScriptが実行された後にのみ実行されることに注意してください)。scriptタグが実行されました。あなたが他のすべてのscriptタグの後

<script type="text/coffeescript"> 
    onReady() 
</script> 

を入れて、どこかwindow.onReadyを定義した場合、すべてのスクリプトがロードされた後ので、例えば、その関数が呼び出されます。

$ -> onReady() 

(jQueryを使用)の場合は、DOMとすべてのスクリプトの準備が整っていることを確認してください。

アップデート:私はすべてのスクリプトが実行された後coffee-script.jsが呼び出すコールバックがあるのか​​どうかは100%わからなかったので、これは「1つの液」であることを掲載しました。しかし、the sourceを確認した後、私は自信を持って言うことができないので、ソリューションは最後の<script type="text/coffeescript">タグにコードを入れることです。 (インラインであるか、.coffeeファイルであっても問題ありません)

関連する問題