Сначала я думал, что вы спрашиваете о том, как прикрепить обратный вызов к window.onload
из CoffeeScript (что, конечно, очень просто, так как «Это просто JavaScript»), но теперь я понимаю, что вы спрашиваете, как Вы гарантируете, что код выполняется после всех
<script type="text/coffeescript" src="..."></script>
теги были выполнены при использовании coffee-script.js
.
Одним из решений является установка обратного вызова в последнем загруженном CoffeeScript. Начиная с версии 1.1.0, coffee-script.js
гарантирует, что все теги CoffeeScript script
выполняются по порядку (хотя обратите внимание, что они будут выполняться только после выполнения всех тегов JavaScript script
). Так, например, если вы поставите
<script type="text/coffeescript">
onReady()
</script>
после всех остальных тегов script
и определите window.onReady
где-нибудь еще, тогда эта функция будет вызываться после загрузки всех скриптов. Если вы сделали это
$ -> onReady()
(с jQuery), тогда вы убедитесь, что DOM готов, как и все сценарии.
Обновление: Я написал, что это «одно решение», потому что я не был уверен на 100%, существует ли обратный вызов, который coffee-script.js
вызывает после запуска всех сценариев. Но после проверки источника я могу с уверенностью сказать, что это не так, поэтому решение only состоит в том, чтобы поместить код в последний тег <script type="text/coffeescript">
. (Будь то встроенный файл или файл .coffee
не имеет значения.)