我正在将一个外部主题整合到Meteor中。它有一些脚本加载在body标签的最后。这个 <script>
标签在 <body>
的Meteor模板。
该主题使用的js像Bootstrap,jquery,和其他各种可能的外部JS库(它也把在最后,前 </body>
. 最后一个剧本是这样的 custom.js
脚本,这是这个主题专用的脚本。脚本里面除了常规函数语句外,还有两个匿名函数,两个 if
块在顶层,一个 $(document).ready
回调和一个 $(window).load
回调。
有什么办法可以让加载的脚本脾气最小?我试着把所有的脚本都移动到了 <head>
的流星模板。但是缺少一些效果。我想可能是 $(window).load
是没有得到正确的时间调用。所以我在里面调用它 Template.scriptAppend.rendered
其中 scriptAppend 是一个模板,是在 </body>
. 我还移动了两个匿名函数和两个 if
块内 $(window).load
. 可以用,但太麻烦了。有没有办法让脚本保持原样?
在这些之前,我最初只是觉得我会用jQuery来添加的。<script>
标签内页 Template.scriptAppend.rendered
但似乎没有效果,我也不知道为什么。
所以我的问题是,(1)有没有办法让脚本保持原样,(2)什么时候才是Meteor <head>
反正被处理了?显然 $(window).load
没有在脚本所期望的正确时间执行。
有时 Meteor 加载文件的顺序与一般的 web 服务器不同,这意味着你的函数不会像你习惯的那样加载。将外部脚本包含在头部就好了,但是你应该尝试将所有通常会进入的东西放在 $(document).ready()
内功 Template.templatename.rendered
函数来代替。在过去,这对我来说是个好办法。